как прочитать всю строку, кроме первой?

есть ли способ читать только вторую до последней строки, кроме первой строки?

вот мой пример кода

File myFile;
char cr;
void setup() {
  // Открытие последовательной связи и ожидание открытия порта:
  Serial.begin(9600);
  while (!Serial) {
    ; // ждем подключения последовательного порта. Требуется только для собственного порта USB
  }


  Serial.print("Initializing SD card...");

  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    while (1);
  }
  Serial.println("initialization done.");



  // повторно открываем файл для чтения:
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");

    // читаем из файла, пока в нем ничего не останется:
    while (myFile.available()) {
      Serial.write(myFile.read());



    }
    // закрываем файл:
    myFile.close();
  } else {
    // если файл не открылся, выводим ошибку:
    Serial.println("error opening test.txt");
  }
}

void loop() {
  // после установки ничего не происходит
}

, 👍1


2 ответа


Лучший ответ:

3

пропустить первую строку

bool firstLine = true;
while (myFile.available()) {
  int c = myFile.read();
  if (firstLine) {
    if (c == '\n') {
      firstLine = false;
    }
  } else {
    Serial.write(c);
  }
}
,

3

Почему бы вам не прочитать первую строку, игнорировать их и запустить while следующим образом:

while (myFile.available() && (myFile.read() != '\n') {}; // Empty while body
while (myFile.available()) {
  Serial.write(myFile.read());
}
,

@Майкл как мне заблокировать/пропустить первую строку и прочитать вторую строку до последней?, @awesome23

Прочитайте первую строку и не используйте ее, как в коде выше., @Michel Keijzers

myFile.read(); читает только один байт/символ, @Juraj

@Juraj Спасибо, я улучшил свой ответ соответствующим образом., @Michel Keijzers

и для чего нужен тест endOfLineFound во втором while?, @Juraj

@Juraj Он действительно не нужен, поэтому его можно удалить без каких-либо функциональных изменений. Спасибо еще раз. Также я удалил переменную для условия while., @Michel Keijzers