Einzelnen Beitrag anzeigen

tomsson74

Registriert seit: 8. Jan 2008
73 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Inhalt eines Memos binär speichern?

  Alt 4. Feb 2009, 15:27
Die Länge eines Strings ermittelst Du mit Length und nicht SizeOf.

SizeOf liefert bei einem String eine 4 - das ist die Länge des Zeigers auf den Speicherbereich in dem sich der String befindet.

Das Schreiben der Länge müsste in etwa so aussehen_

Delphi-Quellcode:
  (...)
  c_copyright : String;
  Symbol : String;
  Laenge : Integer // <------------- Eine Variable für die Länge des Strings
begin
  Version := 400;
  Period := 1;
  Digit := 6;
  c_copyright := '(C)opyright 2003, MetaQuotes Software Corp.';
  Symbol := 'EURUSD';
  FileHandle := FileCreate(Path);

  Laenge := Length(c_copyright); // <------------- Länge des Strings ermitteln
  FileWrite(FileHandle, Laenge, SizeOf(Laenge)); // <--------------- Länge des Strings speichern
  FileWrite(FileHandle, c_copyright, SizeOf(c_copyright)); // <----- Jetzt kommt der String ...
  (...)
Beim Lesen muss Du erstmal die Länge auslesen und dann den String mit dieser Länge lesen:

Delphi-Quellcode:
  (...)
  FileRead(FileHandle, c_copyright, Laenge);
  (...)
Ungetestet, aber so in etwa müsste das funktionieren.

/Thomas
  Mit Zitat antworten Zitat