Es gibt da eine nützliche Funktion, mit der man eine Datei in einen String laden kann:
Delphi-Quellcode:
function FileToString(const FileName: string): AnsiString;
var
fs: TFileStream;
Len: Integer;
begin
fs := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
try
Len := fs.Size;
SetLength(Result, Len);
if Len > 0 then
fs.ReadBuffer(Result[1], Len);
finally
fs.Free;
end;
end;
Und dann:
Delphi-Quellcode:
var
aBuf: PChar;
aLen: integer;
s : AnsiString;
begin
s := FileToString('testdatei.txt');
aBuf := PAnsiChar(s);
aLen := Length(s);
...
end;
PS: hier noch die Umkehrfunktion StringToFile():
Delphi-Quellcode:
procedure StringToFile(const FileName: string; const Contents: AnsiString);
var
fs: TFileStream;
Len: Integer;
begin
fs := TFileStream.Create(FileName, fmCreate);
try
Len := Length(Contents);
if Len > 0 then
fs.WriteBuffer(Contents[1], Len);
finally
fs.Free;
end;
end;