Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi beliebige Datei in Stream speichern (https://www.delphipraxis.net/2515-beliebige-datei-stream-speichern.html)

Bonestorm 4. Nov 2003 15:51

Re: beliebige Datei in Stream speichern
 
Hallo zusammen!
Ich finde den Buffer als string zu definieren ist nicht grade die eleganteste Lösung.
Da wird es bei größeren Dateien Probleme geben.
Mein Vorschlag:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  str : TFileStream;
  buffer : Pointer;
begin
  try
    str := TFileStream.Create('xxx.txt',fmOpenRead);
    buffer := AllocMem(str.Size);
    str.Read(Buffer^,str.Size);
    Server.Socket.Connections[0].SendBuf(buffer^,str.Size);
  finally
    FreeMem(buffer);
    FreeAndNil(str);
  end;
end;

procedure TForm1.ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
  len : integer;
  buffer : Pointer;
  str : TFileStream;
begin
  len := Socket.ReceiveLength;
  try
    str := TFileStream.Create('xxx2.txt',fmCreate);
    buffer := AllocMem(len);
    Socket.ReceiveBuf(buffer^,len);
    str.Write(buffer^,len);
  finally
    FreeAndNil(str);
    FreeMem(buffer);
  end;
end;
Ich denke, dass es so funktionieren müsste.

Christian Seehase 4. Nov 2003 19:20

Re: beliebige Datei in Stream speichern
 
Moin Bonestorm,

was verstehst Du in diesem Zusammenhang unter "grössere Datei"?


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:00 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz