#define SD_BUFFERSIZE 50 uint16_t getLinesInFile(FIL *file, char *name, uint8_t openFile) { uint16_t cntLines = 0; //Counter für die Zeilen char buffer[SD_BUFFERSIZE]; //Puffer für die gelesen zeilen if(openFile == 1) { //Want Open? Only Aviable if (f_open(file, name, FA_READ | FA_OPEN_EXISTING) ) { //Öffne Datei return -1; //Error -1 returned } } while(cntLines < 0xFFFE) { //While Schleife f_gets(buffer, sizeof(buffer), file); //Lese Zeile aus if(strchr(buffer, '\n')) cntLines++; //Prüfe Zeile auf \n am Ende und erhöhe denn Counter if(f_eof(file)) { //Prüfe ob eine der Datei cntLines++; //Falls ja erhöhe noch mal um eins für die letzte Zeile break; //Abbruch } } if(openFile) { // if ( f_close(file) ) { //Schließe Datei return -1; //Error -1 returned } } return cntLines; //Gebe die Anzahl an Zeilen zurück }