Autor Beitrag
G-McKree
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 178



BeitragVerfasst: Mi 14.01.04 20:22 
ich bin grad dabei mit TFileStreams rumzuexperimentieren, eigentlich mit dem hintergrundgedanken mal einen installer o.ä. zu schreiben. Also hab ich irgenteine *.exe genommen (is sogar von wem hier in forum) und an diese datei mal daten angefügt, ob sie dann noch funzt. Das geht. Dann wollte ich die daten am ende der datei lesen -> geht nicht. Hier mal der source (unordentlich und teilweise unnötig):
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.FormCreate(Sender: TObject);
var st0,st1,st2: tfilestream;
p: pointer;
s: string;
begin
st0:= tfilestream.Create('E:\temp\delphi\apiclock\apiclock\apiclock.exe', fmopenread);
st1:= tfilestream.create('e:\temp\teststream.exe', fmcreate);
st1.CopyFrom(st0,0);
st0.free;
st1.Write('test',4);
st1.free;
st2:= tfilestream.create('e:\temp\teststream.exe', fmopenread);
st2.Position:= st2.size - 4;
//showmessage(inttostr(st2.position));
st2.Read(p, 4);

showmessage(^p);
application.Terminate;
end;


egal an welcher position ich lese, es kommt immer so ein kreuz-zeichen raus. und ich wüsste nun gern wie ich das 'test' am ende der datei zu lesen bekomme
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 14.01.04 20:39 
Du musst dir irgendwie merken, wo die Exe aufhört und deine angehängte Datei anfängt. Und dann ab da lesen. Du könntest dir mal mein SFXTool von meiner HP ankucken. Arbeitet zwar ohne TFileStream aber das Prinzip ist das gleiche.
G-McKree Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 178



BeitragVerfasst: Mi 14.01.04 20:44 
das hab ich doch bei //st2.Position:= st2.size - 4;// gemacht
jedenfalls denk ich dass das funzt, da ich ja 4 bytes geschrieben habe und ab dem 4. byte von hinten lese

oder nicht?

mir gings eigentlich darum, das die position egal is, da immer dieses kreuz-zeichen angezeigt wird, was ich komisch finde, da, wenn ich nicht irre 4 zeichen angezeigt werden müssten (und zwar nicht immer die gleichen)
G-McKree Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 178



BeitragVerfasst: Mi 14.01.04 21:45 
nun, das problem, dass ich nur 4 bytes lesen kann hab ich behoben, aber jetzt kommt bei lesen immer eine access violation