Sooo,
hab mal etwas gegoogelt und bin nun soweit gekommen:
Delphi-Quellcode:
function readFile(pFilename: PChar): PChar; stdcall;
var
rPBOFile: TFileStream;
iFilesize: Integer;
sContent, sBuffer: String;
liLen: longInt;
begin
rPBOFile := TFileStream.Create(pFilename, fmOpenRead);
try
iFilesize := rPBOFile.Seek(0, 2);
sContent := ExtractFileName(pFilename) + '
Filesize: ' + formatFilesize(iFilesize, true) + ' - Files in PBO: 0';
sContent := sContent + '<hr />';
rPBOFile.Read(liLen, iFileSize);
SetLength(sBuffer, liLen);
rPBOFile.Seek(0, 0);
rPBOFile.Read(sBuffer, Length(sBuffer));
sContent := sContent + 'Buffer:<code>' + sBuffer + '</code>';
sContent := sContent + '<hr />';
finally
rPBOFile.Free;
Result := PChar(sContent);
end;
end;
Die Ausgabe stimmt genau mit der Datei überein, jedoch wenn ich nach
sContent := sContent + 'Buffer:<code>' + sBuffer + '</code>';
das hier hinzufüge;
Delphi-Quellcode:
sContent := sContent + 'First match: ' + IntToStr(Pos(Chr(0), sBuffer)) + '
';
zeigt er mir "0" an. eine weitere Ausgabe von sBuffer sagt mir das diese Variable leer ist, warum ist dem so?
LG Toby