Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Datei wird beim senden kleiner :( (https://www.delphipraxis.net/32143-datei-wird-beim-senden-kleiner.html)

freak4fun 19. Okt 2004 13:22


Datei wird beim senden kleiner :(
 
hallo,

Code:
procedure TMain_Form.FTPServerExecute(AThread: TIdPeerThread);
var
  DateiStream: TFileStream;
begin
  try
    DateiStream := TFileStream.Create(SaveDialog1.FileName, fmCreate);
    AThread.Connection.ReadStream(DateiStream);
  finally
    DateiStream.Free;
    FTPClient.Disconnect;
  end;
end;
Wenn ich so eine Datei versende ist die gesendete Datei klainer als die Anfangsdatei. Heisst auf Deutsch: Da fehlt was! :wall:

Kann mir bitte einer sagen was ich falsch mache?

Wenn was fehlt bitte auch melden, ich hab noch mehr code. :mrgreen:

Kedariodakon 19. Okt 2004 14:47

Re: Datei wird beim senden kleiner :(
 
Mal geschaut, ob du deinen Client auf eine ASCII oder Binary Übertragung eingestellt hast?
In diesem Fall wäre eine Binary von Vorteil... :zwinker:

Is mein erster Gedanke zu FTP Übertragungen ohne den Source anzuschaun...
Also net pöse sein ^^

Bye

freak4fun 19. Okt 2004 15:12

Re: Datei wird beim senden kleiner :(
 
hallo,

komme gerade von deinem selbstgespräch :mrgreen:

Socket to Indy

naja ich werds weiterversuchen hab ja Zeit und thx :cyclops:

mfg
freak

Kedariodakon 19. Okt 2004 15:49

Re: Datei wird beim senden kleiner :(
 
Es hat keiner eine Lösung gehabt und da ich scheinbar eine gefunden hab, hab ich sie mal gepostet, falls mal wer anders sowas sucht ^^

Kannst du ja auch tun :zwinker:

Dein Problem könntest du vielleicht auch ein wenig besser beschreiben, z.b. was für Komponenten du benutzt ec.
Mir scheind du nimmst Indy-Komponenten und willst was mit FTP machen ^^
Richtig?

bye

freak4fun 20. Okt 2004 08:56

Re: Datei wird beim senden kleiner :(
 
hallo,

öhm... ja :mrgreen:

Also ich hab nur nen Indy TCPServer und den Clienten dazu. Mein Chatprogramm soll Daten hin und hersenden. Aber alles was passiert. Die Daten werden gelöscht(Größe = 0 Datei noch da) und die datei die ankommt ist auch 0 Byte groß

ich hab schon mein halbes delphi verschickt :wall: :drunken: :wall: :gruebel:

mfg
freak

Kedariodakon 20. Okt 2004 09:03

Re: Datei wird beim senden kleiner :(
 
Jaja die pösen TIdTCP Komponenten...
Ich bin auch gerade am werkeln mit dennen...
Wenn ich mein Datendurchsatz Problem gelöst hab, hab ich vielleicht mal zeit mir die stream Sache anzuschaun...

Is die Datei vorm verschicken schon 0 Bytes Groß, oder erst später?
Wurden deine Datein nicht erst nur verkleinert?

Bye

freak4fun 20. Okt 2004 09:15

Re: Datei wird beim senden kleiner :(
 
huhu :hi:

ja also zu anfang war die original noch da (intakt) und diegesendete hatte nen verlkust von ca 10% und nun werden die originalgröße auf 0 gesetzt und die neue (gesendete) ist auch 0 :gruebel:

*irgendwas falsch macht* :angel2:

<-- Vielleicht doch wieder mit seinen Legosteinen spielt :(

mfg
freak

PS: Ich geb nicht auf! ... und wenn es das letzte ist was ich tue. :twisted:

Kedariodakon 20. Okt 2004 09:44

Re: Datei wird beim senden kleiner :(
 
Die Datein die du senden willst, werden von ihrem Inhalt befreit?
Da passt dann aber irgendwas gewaltig nicht würd ich sagen :gruebel:
Sber dann liegt das net an der TIdTCP-Komponente, den so schlecht uind verbugt sind sie ja nun net :zwinker:


Bye

freak4fun 20. Okt 2004 11:12

Re: Datei wird beim senden kleiner :(
 
ich hab keine Ahnung, bin verzweifelt und gebe bald auf. :wall:

mfg
freak

freak4fun 20. Okt 2004 14:30

Re: Datei wird beim senden kleiner :(
 
so habs weiter probiert:

Code:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    IdTCPClient1: TIdTCPClient;
    IdTCPServer1: TIdTCPServer;
    Panel1: TPanel;
    procedure Button1Click(Sender: TObject);
    procedure IdTCPServer1Execute(AThread: TIdPeerThread);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  Stream: TFileStream;
begin
  if OpenDialog1.Execute then
    Stream := TFileStream.Create(OpenDialog1.FileName, fmCreate);
  IdTCPClient1.Host := '127.0.0.1';
  IdTCPClient1.Port := 7000;
  IdTCPServer1.Active := True;
  IdTCPClient1.Connect;
  try
    IdTCPClient1.WriteStream(Stream, True, True, 0);
  finally
    Stream.Free;
  end;

end;

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
  EingangsStream: TFilestream;
begin
  if SaveDialog1.Execute then
  EingangsStream := TFileStream.Create(SaveDialog1.FileName, fmCreate);
  try
    Athread.Connection.ReadStream(EingangsStream);
  finally
    EingangsStream.Free;
  end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if IdTCPClient1.Connected then
    IdTCPClient1.Disconnect;
  if IdTCPServer1.Active then
    IdTCPServer1.Active := False;
end;

end.
Zur Erklärung:

Ich möchte eine Datei in einen Stream laden und den dann übers Netzwerk verschicken, auslesen und die Datei so haben wie ich sie verschickt hab.

Hier hab ich des versucht nur für meinen Rechner zu tun. Müsste vom Prinzip her des eubfachste sein.

Ergebnis: 1. Zu versendernde Dateigröße = 0
2. Die Datei wird zwar gespeichert, ist aber auch 0 Byte´groß
3. Im Server Execute kommen 2 Sachen an - ich weiss nicht welche - aber beide 0 Byte groß

Ich sag nur eins: BItte, bitte helft mir. :chat:

mfg
freak


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 Uhr.

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