Bzw. es klappt doch nicht so toll:
Dieses Programm:
Delphi-Quellcode:
AssignFile(f,'modme.exe');
Append(f);
Write(f,'beispiel');
CloseFile(f);
ShowMessage('done');
Hängt den String "beispiel" an das Ende des unteren Programmes an. Wenn ich es mit einem Hexeditor öffne, sehe ich den String dort auch.
Dieses Programm soll nun den angehängten String auslesen.
Delphi-Quellcode:
function File2String2(const FileName: string): string;
var
Stream: THandle; Size,Bytes:Cardinal;
begin
if length(FileName) = 0 then exit;
Stream := CreateFile(pchar(FileName), GENERIC_READ,0, nil,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if Stream <> INVALID_HANDLE_VALUE then
begin
Size := GetFileSize(Stream,nil); SetLength(Result,Size);
ReadFile(Stream,pchar(Result)^,Size,Bytes,nil);
CloseHandle(Stream);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
x,y :Integer;
inhalt:String;
begin
inhalt:=File2String(Application.ExeName);
x:=ansipos('beispiel',inhalt);
showmessage(inttostr(x));
y:=posex('beispiel',inhalt,x+1);
showmessage(inttostr(y));
end;
Wenn ich richtig denke müsste ja der String "beispiel" im obigen Programm mindestens 2x enthalten sein.
Einmal daher weil ich nach im Suche, und ein zweites mal weil ich ihn ja angehängt habe.
So Ansipos findet auch den String, aber PosEx leider nichtmehr...
Woran könnte das liegen?
Bzw. wie kann ich den angehängten String noch auslesen?
Filestream?
Danke