PokeS() PeekS() sicher mit Null-Ende oder Länge angeben
Verfasst: 27.06.2010 12:05
Tachchen,
ja ich muss nun mal eine sehr anfängermäsige Frage stellen
In der hilfe zu PeekS() steht ja:
Denn bei ReadString() im bei Files ist das ja ledier nicht der fall.
Sollte man nun lieber gleich einheitlich auf Nummer sicher gehen und auf die String sachen verzichten, und statt dessen mit
CopyMemory() bzw WriteData arbeiten und im Speicher/Datei immer zuerst eine Long schreiben mit der Länge in Bytes des Strings und dann "per Hand" den StringInhalt kopieren, sodass beim lesen wirklich 100% sicher gegangen werden kann dass alles wieder so wird wie es war ?
ja ich muss nun mal eine sehr anfängermäsige Frage stellen

In der hilfe zu PeekS() steht ja:
Kann ich also sicher sein, dass wenn ich meherere Strings hintereinander in einen Speicher schreibe (PokeS) welche immer mit einer Null getrent sind (PokeC(*Buffer, 0)), dass dann später beim auslesen wirklich wieder der exakte Strins ausgelesen wird ?Der String sollte mit einem '0' Zeichen enden (Null-terminierter String), andernfalls wird der Speicher solange ausgelesen, bis ein '0' Zeichen auftritt.
Denn bei ReadString() im bei Files ist das ja ledier nicht der fall.
Dort kann ich also durchaus einen String schreiben, er würde dann aber mehrere ReadStrings brauchen wenn der String dieses EoL hat (LF, CR, irgendwas davon ^^)Liest einen String aus der '#Datei', bis ein 'End Of Line' (deutsch: "Ende der Zeile") Zeichen gefunden wird
Sollte man nun lieber gleich einheitlich auf Nummer sicher gehen und auf die String sachen verzichten, und statt dessen mit
CopyMemory() bzw WriteData arbeiten und im Speicher/Datei immer zuerst eine Long schreiben mit der Länge in Bytes des Strings und dann "per Hand" den StringInhalt kopieren, sodass beim lesen wirklich 100% sicher gegangen werden kann dass alles wieder so wird wie es war ?