Folgender Test bringt bei s2 "Hello Welt";
Öffne ich die Datei mit dem TextEditor, so kommen unleserliche Zeichen, so wie du schreibst.
Bei deinem Beispiel ist die Text-Datei leserlich.
Die Datei ist auch 10Byte lang, so wie in deinem Beispiel.
Aber wieso geht mein erstes Beispiel mit der Array mit [1] nicht ?
Code: Alles auswählen
program Project1;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{ you can add units after this };
var
stream: TFileStream;
s1, s2: ansistring;
Len: Integer;
begin
s1 := 'Hallo Welt';
s2 := '----------';
Len := Length(s1);
stream := TFileStream.Create('v:\test.txt', fmCreate);
// stream.Write(s1[1], Len); // --> ok
//stream.Write(PChar(s1)^, Len); // --> ok
stream.Write(s1, Len); // --> Unsinn
stream.Free;
stream := TFileStream.Create('v:\test.txt', fmOpenRead);
// stream.Read(s2[1], Len); // --> ok
//stream.Read(PChar(s2)^, Len); // --> ok
stream.read(s2, Len); // --> Unsinn
stream.Free;
WriteLn(s2);
ReadLn;
end.