| Autor |
Beitrag |
Die Brotmafia
      
Beiträge: 110
Win XP Suse Linux 9.3
Delphi 7 Enterprise, Delphi 2005
|
Verfasst: Do 29.12.05 18:35
Also, ich hab mich jetzt mal ein bisschen schlau gemacht und hab folgendes gecodet bzw. übernommen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| if text='SendFile' then begin Socket.SendText('StreamComming'); Sleep(300); Fstream:=TFileStream.Create('C:\datei.txt', fmOpenRead); Socket.SendStream(FStream); end; |
So, die datei C:\datei.txt ist natürlich da
Jetzt wird der Stream empfangen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| if('StreamComming' = copy(text,0,13)) then begin Fstream:=TFileStream.Create('C:\Datei2.txt', fmOpenWrite); SizeofFile:=Socket.ReceiveLength; GetMem(pBuffer, SizeofFile); try Socket.ReceiveBuf(pBuffer^,SizeofFile); Fstream.Write(pBuffer^,SizeofFile); finally FreeMem(pBuffer); FStream.Free; end; end; |
Hm, wenn ich das ganze jetzt ausführe passiert einfach nichts, auf c:\ sind die dateien datei1.txt und datei2.txt, in der datei1.txt steht test, in der datei2.txt steht nichts, wenn ich jetzt das programm starte ist alles genau so wie es vorher war, keine änderung, obwohl doch jetzt eigentlich auch in der datei2.txt test stehen müsste?
Hoffe mal ihr könnt mir helfen, ich probier auch noch n bisschen rum, vielleicht komm ich ja noch drauf ^^
thnx!
Moderiert von raziel: Code- durch Delphi-Tags ersetzt
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 29.12.05 19:06
Moin!
Du mußt vorher noch die Länge des Streams schicken und in einer Schleife bis zum Erreichen dieser Länge empfangen (siehe letzten Thread dazu...).
cu
Narses
|
|
Die Brotmafia 
      
Beiträge: 110
Win XP Suse Linux 9.3
Delphi 7 Enterprise, Delphi 2005
|
Verfasst: Do 29.12.05 20:29
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 30.12.05 00:46
Moin!
TFileStream eingeben und F1 drücken...
cu
Narses
|
|
Die Brotmafia 
      
Beiträge: 110
Win XP Suse Linux 9.3
Delphi 7 Enterprise, Delphi 2005
|
Verfasst: Fr 30.12.05 01:18
Hab ich gemacht, da steht aber nicht wie ich die Größe des Streams bzw. der Datei finden kann, vielleicht bin ich auch nur zu dumm es zu finden..
|
|
Fighter#1
      
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: Fr 30.12.05 08:54
Wenns nur um die Datei größe geht dann hier ein
bischen Source.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| function Dateigroesse (Datei : String) : Integer; var SRec: TSearchRec; begin Result := -1; if FindFirst(Datei, faAnyFile, SRec) = 0 then try Result := SRec.Size finally FindClose(SRec) end; end; |
Das nächste mal einfach suchen ...
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 30.12.05 10:03
Moin!
Die Brotmafia hat folgendes geschrieben: | | Hab ich gemacht, da steht aber nicht wie ich die Größe des Streams bzw. der Datei finden kann, vielleicht bin ich auch nur zu dumm es zu finden.. |
...(Fortsetzung) dann auf Eigenschaften klicken und links "Size" auswählen, da werden sie geholfen...
@ Fighter#1Er hat doch schon ein Streamhandle, wozu dann noch mit FindFirst arbeiten...
cu
Narses
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Fr 30.12.05 10:43
_________________ Na denn, dann. Bis dann, denn.
|
|
|