Einzelnen Beitrag anzeigen

Bonestorm

Registriert seit: 23. Aug 2003
2 Beiträge
 
#21

Re: beliebige Datei in Stream speichern

  Alt 4. Nov 2003, 16:51
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.
  Mit Zitat antworten Zitat