Frage zu SD.lib

Hallo zusammen

Brauche mal wieder eure Hilfe

Kann man mit der SD.lib eine einzelne Zeile in einer Datei loeschen
gut waere es wenn ma es mit Position in der Datei machen koennte

Ich Danke Euch schon einmal

bye juergen

Nein.
Die SD Library kennt keine "Zeilen" in einer Datei.
(Gibt noch mehr Gründe ... )

Hallo,

um das zu machen ist erheblicher Aufwand notwendig.
Grobe Idee falls das so einfach umsetzbar ist.
Jeder Eintrag wird am Anfang der Zeile mit einer Zeilennummer begonnen.
Wenn man nun eine Zeile korrigieren oder löschen möchte, muß man im gesamten Text nach der Zeilennummer suchen, den Anfang erfassen und diese dann überschreiben. So ganz grob beschrieben. Jedenfalls muß erst nach etwas gesucht werden im Text.

Hallo zusammen

Hallo michael_x
Hallo Doc_Arduino

Ich Danke euch fuer eure Antworten

Ich sehe da noch eine andere Moeglichkeit
werde die Datei in den Mega Laden (Backup-Schreiben) und bearbeiten
Es gibt bestimmt kein Rename oder
die Datei auf SD loeschen
und neu auf SD schreiben

bye juergen

Hallo,

wenn das so möglich ist in Deinem Sketch, ist schmerzloses löschen und neu schreiben der gesamten Datei am einfachsten.

Es gibt bestimmt kein Rename

Das wäre prinzipiell möglich. Ich weiss aber nicht auswendig, ob es in SD oder sdfat schon vorgesehen ist.
Das eigentliche Problem beim "Zeile löschen" ist, dass eine Datei nur eine Folge von Zeichen ist, ( die intern nochmal in feste Blöcke von 512 Zeichen unterteilt ist.
Wenn "Zeile löschen" das Ersetzen mit Leerzeichen wäre, müsste nicht der ganze Rest in die neue Datei umkopiert werden.
( Aber das unterstützt die SD Library auch nicht direkt ).

Dateinamen zu ändern ist mit der SdFat Klasse möglich:

bool SdFat::rename( const char* oldPath, const char* newPath)

Rename a file or subdirectory.

Parameters:
[in] oldPath Path name to the file or subdirectory to be renamed.
[in] newPath New path name of the file or subdirectory.

The newPath object must not exist before the rename call.

The file to be renamed must not be open. The directory entry may be moved and file system corruption could occur if the file is accessed by a file object that was opened before the rename() call.

Returns:
The value one, true, is returned for success and the value zero, false, is returned for failure.