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