Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Neuen Beitrag zur Code-Library hinzufügen (https://www.delphipraxis.net/33-neuen-beitrag-zur-code-library-hinzufuegen/)
-   -   Über Indy versandte Dateien lassen sich nicht öffnen (https://www.delphipraxis.net/192220-ueber-indy-versandte-dateien-lassen-sich-nicht-oeffnen.html)

haentschman 30. Mär 2017 11:43

AW: Über Indy versandte Dateien lassen sich nicht öffnen
 
Hallöle...:P
[:stupid:]
Das Delphi Berlin weigert sich das with zu benutzen...

http://stackoverflow.com/questions/5...a-bad-practice ...Antwort 1. :thumb:
Zitat:

...but the code is now broken.
[/]

Benni0811 30. Mär 2017 11:58

AW: Über Indy versandte Dateien lassen sich nicht öffnen
 
Mein Projekt:
Delphi-Quellcode:
unit Server;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdCustomTCPServer, IdStreamvcl, IdTCPServer, idcontext;

type
  TForm1 = class(TForm)
    IdTCPServer1: TIdTCPServer;
    procedure FormCreate(Sender: TObject);
    procedure IdTCPServer1Execute(AContext: TIdContext);
  private

  public

  end;

const
  filename='h:\Test.bmp';

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
    IdTCPServer1.Active:=true;
end;

procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
Var
  FStream: TFileStream;
begin
    FStream := TFileStream.Create(filename, fmCreate);
    FStream.Position := 0;
    AContext.Connection.Socket.ReadStream(fstream);
    AContext.Connection.Disconnect;
    FStream.Destroy;
end;

end.
Delphi-Quellcode:
unit Client;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdCustomTCPServer, IdTCPServer,
  StdCtrls, IdTCPConnection, IdTCPClient;

type
  TForm2 = class(TForm)
    Button1: TButton;
    IdTCPClient1: TIdTCPClient;
    procedure Button1Click(Sender: TObject);
  private
 
  public

  end;
 
const
  filename='c:\test.bmp';

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
Var FStream:TFileStream;
begin
    FStream := TFileStream.Create(filename, fmOpenRead);
    IdTcpClient1.Connect;
    IdTcpClient1.Socket.Write(FStream);
    IdTcpClient1.Disconnect;
    FStream.Destroy;
end;

end.
Funktioniert auch ohne with nicht :(

ISurf 30. Mär 2017 12:41

AW: Über Indy versandte Dateien lassen sich nicht öffnen
 
Hallo,
beim Versenden fehlt das Setzen des Parameters AWriteByteCount auf True:

Delphi-Quellcode:
IdTcpClient1.Socket.Write(FStream, 0, true);
Damit sollte es dann funktionieren.

Benni0811 30. Mär 2017 12:54

AW: Über Indy versandte Dateien lassen sich nicht öffnen
 
Funktioniert perfekt, Danke!:-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 Uhr.
Seite 2 von 2     12   

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