Ohne Kopieren in Zwischenpuffer:
Delphi-Quellcode:
function GetStartBlockFromTextFile(const F: string; const X: Integer): AnsiString;
// holt die ersten X Zeichen aus der Text-Datei F
var
SR : TStreamReader;
len : Integer;
begin
SR := TStreamReader.Create(F);
try
SetLength(Result, X);
len := SR.ReadBlock(Result, 0, X);
// evtl. in len < X, dann wird der String entsprechend verkürzt
SetLength(Result, len);
finally
SR.Free;
end;
end;
Das lässt der Compiler nicht zu, da ReadBlock im ersten Parameter ein Char-Array erwartet, Result aber als AnsiString deklariert ist. Wie kann man das type-casten?