Заменить последнюю строку в текстовом файле SD-карты (gpx) на esp32C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Заменить последнюю строку в текстовом файле SD-карты (gpx) на esp32

Сообщение Anonymous »

Я пытаюсь записать gpx-трек с GPS на SD-карту на ESP32. Поскольку я не совсем знаком с c, мне трудно справиться с этой задачей:
каждый раз, когда я записываю в файл новый сегмент дорожки, я хочу сначала удалить закрывающие строки, вот так:
p>

Код: Выделить всё

  if (gpsFixExists && dateIsValid && timeIsValid)
{
if (state.currentGPXFile == "")
{
String filename = "/" + String(state.dateYear) + String(state.dateMonth) + String(state.dateDay) + "_" + String(state.timeHours) + String(state.timeMinutes) + String(state.timeSeconds) + ".gpx";
state.currentGPXFile = filename.c_str();
File gpxFile = SD.open(state.currentGPXFile.c_str(), FILE_WRITE);
// Write GPX header and metadata
gpxFile.println("");
gpxFile.println("");
gpxFile.println("");
gpxFile.println("" + filename + "");
gpxFile.println("Track log generated by Open Rally Computer");
gpxFile.println("");
gpxFile.println("Track Log");
gpxFile.close();
}

// Open the file to append data
File gpxFile = SD.open(state.currentGPXFile.c_str(), FILE_WRITE);
if (gpxFile)
{
// Move to the end of the file, then seek back to overwrite the closing tags
long position = gpxFile.size() - strlen("") - 1; // Adjusted to account for newline characters
gpxFile.seek(position);
// Write the new track point
gpxFile.println("");
gpxFile.println("" + String(state.currentAltitude, 2) + "");
gpxFile.println("" + String(state.dateYear) + "-" + String(state.dateMonth) + "-" + String(state.dateDay) + "T" + String(state.timeHours) + ":" + String(state.timeMinutes) + ":" + String(state.timeSeconds) + "Z");
gpxFile.println("");
// Re-append the closing tags
gpxFile.println("");
gpxFile.close();
}
}

эти две строки неверны:

Код: Выделить всё

      long position = gpxFile.size() - strlen("") - 1; // Adjusted to account for newline characters
gpxFile.seek(position);
как правильно заменить закрывающую линию новым сегментом дорожки?
Большое спасибо!

Подробнее здесь: https://stackoverflow.com/questions/784 ... e-on-esp32
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Экспорт маршрута GPX с карты листовок
    Anonymous » » в форуме Html
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Java заменить строку в текстовом файле
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Заменить строку в текстовом файле с различными сценариями замены
    Anonymous » » в форуме Python
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Заменить строку в текстовом файле с различными сценариями замены
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Клиент Firebase ESP32: получение ошибки INVALID_EMAIL при анонимной аутентификации на ESP32
    Anonymous » » в форуме C++
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»