Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

Re: Datei mit "#0" schreiben?

  Alt 3. Apr 2007, 01:29
@3_of_8: das mit dem abschließendem #0 in String hab ich nie bezweifelt ... nutze es ja selber für 'ne schnelle String-PChar-Konvertierung, ohne PChar(S) aus.

Aber warum es mit ShowMessage nicht geht ist recht einfach erklärt ... dieses übergibt ja intern zum Darstellen den String an eine WinPAI-Funktion auf, welche ja die Strings als PChar entgegen nimmt.



@xZise: TStringList.LoadFromFile ließt die gesamte Datei ein, nur ruft es danach TStringList.SetTextStr auf, welches alles ab #0 wieder abschneitet/löscht.


Da du ja wegen der (gewollten) #0 eh die Dateien mit 'nem eigenem Programm erstellen muß, wie wäre es dann mit der eingebauten Längenangabe? Dieses würde dann auch das einlesen beschleunigen/vereinfachen, da ja gleich bekannt wäre, wie lang der String wäre.

Also jeweils die Länge (LongInt) und nachfolgend den Stringinhalt speichern.

Sozusagen:
Delphi-Quellcode:
i := Length(S);
Write(@i, SizeOf(i));
Write(PChar(S), i);

Read(@i, SizeOf(i));
SetLength(S, i);
Read(PChar(S), i);
(womit eingelesen/gespeichert wird, is dir überlassen ... also ob Stream, oder was Anderes)
$2B or not $2B
  Mit Zitat antworten Zitat