Einzelnen Beitrag anzeigen

Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Dateien mittels Stream versenden (Internet)

  Alt 1. Mai 2004, 00:24
Hi mandumoal,

Zitat:
Aus der Online-Hilfe:
Streams sind einfach nur eine Möglichkeit, Daten zu lesen und zu schreiben. Streams stellen eine gemeinsame Schnittstelle für das Lesen und Schreiben von bzw.auf unterschiedliche Medien bereit, wie beispielsweise [Festplatten- und RAM-]Speicher, Strings, Sockets oder Blob-Streams.
Da du Dateien von der Festplatte versenden willst, brauchst du einen TFileStream.
Das könnte dann etwa so aussehen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var FS: TFileStream;
begin
 try
  FS := TFileStream.Create('C:\Existierende Datei.dat', fmOpenRead + fmShareDenyWrite);
  TCP1.WriteStream(FS, true, true);
 finally
  If FS<>nil then FS.Free;
 end;
end;
Mit TFileStream.Create weist du FS eine Datei zu. Da wir die Datei nur lesen möchten, öffnen wir sie im Modus fmOpenRead. Und weil wir nicht wollen, dass irgendein Programm in die Datei schreibt, während wir sie auslesen, verbieten wir mit fmShareDenyWrite allen anderen Programmen, die Datei mit Schreibzugriff zu öffnen.
Ist die Datei nicht vorhanden, löst Create eine Exception aus, also solltest du evtl. vorher mit FileExists(..) prüfen, ob die Datei existiert.

Ich hoffe das war irgendwie hilfreich

Gruß,
Dani
Dani H.
  Mit Zitat antworten Zitat