Прочтитать первую строку с SD карты и сохранить позицию для повторного чтения с SD карты

Я читаю файл sd card .txt, я хочу прочитать первую строку, а затем как сохранить положение указателя для следующей прочитанной строки?

, 👍2

Обсуждение

Вы имеете в виду, например, использование переменной для сохранения номера текущей строки? Что вы пробовали до сих пор? Пожалуйста, покажите код, который у вас уже есть, @chrisl


2 ответа


3

Вам не нужно будет сохранять эту позицию, файл знает, откуда вы в последний раз читали. Вам нужно будет только вручную сохранить такую информацию, если вы закроете файл и снова откроете его, что, если у вас нет веской причины, на самом деле является очень расточительной операцией.

Если вам действительно нужно, вы можете использовать функции .position() и .seek ():

Сохраните местоположение:

uint32_t pos = myFile.position();

Вспомните это место:

myFile.seek(pos);

Документация:

  • https://www.arduino.cc/en/Reference/FilePosition
  • https://www.arduino.cc/en/Reference/FileSeek
,

1

Файл myFile = SD.открыть("test.txt", O_RDWR);

if (myFile) {
  
  while (myFile.available()) {
    int i = 0;
    while (i < myFile.size()) { 
      inputString =  myFile.readStringUntil('\n');      
      //Serial.print(inputString);
      if (myFile.readStringUntil('\n')) {

Я установил размер для цикла, каждый раз, когда он возвращает "Я хочу, чтобы он прочитал новую строку", но он пропускается, в чем может быть причина?

Чтобы помочь с этим вопросом, я хотел показать процесс, который я проделал по тому же вопросу. Спасибо, я задам этот вопрос в другом месте. Я отправляю сообщение с последовательного порта, когда конец строки не считывается дважды, во время каждого считывания. Я отправляю строчку за строчкой

,

Пожалуйста, задавайте вопросы как новые вопросы, а не в ответе на другой другой вопрос. После удаления этого, когда вы создадите свой новый вопрос, пожалуйста, будьте как можно конкретнее и яснее (и, возможно, объясните, почему вы делаете два "readStringUntil" подряд)., @Dave Newton

evet dediğinizi anladım ve kaldırdım. Çok teşekkür ederim. işe yarıyor. cevabımı bir yere yazmak gerekirse bana bildiriniz ben oraya cevap olarak eklemek isterim., @is_mail

Отвечать на ваши собственные вопросы-это совершенно нормально :), @Dave Newton