Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Code aus code-lib (dateien per indy...) (https://www.delphipraxis.net/23037-code-aus-code-lib-dateien-per-indy.html)

TheMiller 27. Mai 2004 20:42


Code aus code-lib (dateien per indy...)
 
Hi,

dieser Code ist aus der Code-Lib benutze

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  fs: TFileStream;
begin
  if not OpenDialog1.Execute then exit; //erstmal besorgt man sich den Pfad der Datei, z.B. mit dem Standard Dialog TOpenDialog
  with IdTCPClient1 do
  begin
    fs := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite); //Datei in FileStream einlesen
    Connect; //und Verbindung herstellen
    try
      OpenWriteBuffer; //stellt sicher, dass alle Daten versendet werden
      try
        WriteStream(fs, true, true, 0); <---------ZU VIELE PARAMETER (die Null ist ang. zu viel)
        CloseWriteBuffer;
      except
        CancelWriteBuffer;
        raise;
      end;
    finally
      Disconnect;
      fs.Free;
    end;
  end;
end;

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
  fs: TFileStream;
  SizeOfIncomingStream: integer;
begin
  if not SaveDialog1.Execute then exit;
  fs := TFileStream.Create(SaveDialog1.Filename, fmCreate or fmShareExclusive);
  with AThread.Connection do
    try
      SizeOfIncomingStream := ReadInteger; //Größe des Streams empfangen
      ReadStream(fs, SizeOfIncomingStream); //und übergeben
    finally
      Disconnect;
      fs.Free;
    end;
end;
dann kommt bei mir an der oben markierten Stelle die Compilermeldung: Zu viele parameter. Ich denke aber, dass das wichtig ist. Was mache ich falsch?

danke im vorraus

CalganX 27. Mai 2004 20:50

Re: Code aus code-lib (dateien per indy...)
 
Hi,
welche Indy-Version verwendest du? :gruebel: Bei mir - aktuelle Version von der Indy-Website - ist die Anzahl der Parameter korrekt.
Wenn du schreibst IdTCPClient1.WriteStream, dann eine ( machst und wartest, bekommst du eine Liste von den erwarteten Parametern. Was steht denn da?

Chris

TheMiller 27. Mai 2004 20:52

Re: Code aus code-lib (dateien per indy...)
 
Zitat:

Zitat von DJ-SPM
WriteStream(fs, true, true, 0); <---------ZU VIELE PARAMETER (die Null ist ang. zu viel)

An der Stelle sagt der Compiler: zu viele Parameter.

Wenn du was anderes wissen wolltest... Ich glaube dann habe ich deine Frage falsch verstanden.

CalganX 27. Mai 2004 20:55

Re: Code aus code-lib (dateien per indy...)
 
Hi,
das habe ich schon gelesen, ich wollte wissen, welche Parameter WriteStream bei deiner Indy-Version verlangt... ;) Lies dir noch mal durch, was ich geschrieben habe. *g*

Chris

TheMiller 27. Mai 2004 21:00

Re: Code aus code-lib (dateien per indy...)
 
Das steht bei mir da, sobal ich den Code schreibe (als Hint)

Delphi-Quellcode:
WriteStream(AStream:TStream,[const AAll:Boolean = True, [const AWriteByteCount: Boolean = False;])

CalganX 27. Mai 2004 21:02

Re: Code aus code-lib (dateien per indy...)
 
Hi,
das wollte ich wissen. ;) Und jetzt grübeln wir mal: ein Parameter vom Typ TStream, einer vom Typ Boolean und einer vom Typ Integer. In deinem Source stehen aber zwei Boolean. ;)
Folglich nimmst du ein true weg. ;)

Aber trotzdem solltest du dir eine etwas aktuellere Version von den Indy's zulegen. *g*

Chris

[edit]*whoah* Was rede ich? :wall: Du nimmst einfach die 0 weg und fertig ist. :wall: Also das True da lassen. ;)[/edit]

TheMiller 27. Mai 2004 21:03

Re: Code aus code-lib (dateien per indy...)
 
Also so?

Delphi-Quellcode:
WriteStream(fs, true, 0);
(geht auch nicht)

CalganX 27. Mai 2004 21:04

Re: Code aus code-lib (dateien per indy...)
 
Hi,
Zitat:

Zitat von Chakotay1308
[edit]*whoah* Was rede ich? :wall: Du nimmst einfach die 0 weg und fertig ist. :wall: Also das True da lassen. ;)[/edit]

sorry... kam wohl etwas zu spät... :oops:

Chris

TheMiller 27. Mai 2004 21:06

Re: Code aus code-lib (dateien per indy...)
 
Liste der Anhänge anzeigen (Anzahl: 1)
dann passiert das (siehe Anhang)

TheMiller 27. Mai 2004 21:17

Re: Code aus code-lib (dateien per indy...)
 
Schon gut, ich hatte eine nicht gültige IP-Adresse angegeben! :wall:

Danke :witch:

F.W. 2. Jun 2004 17:18

Re: Code aus code-lib (dateien per indy...)
 
Ich möchte mir aus diesem Code auch ein Prog basteln, aber ein kleiner Chat soll mit dabei sein, damit man wenigstens a bisl absprechen kann.

Brauch ich dafür jetzt einen Server und Client auf den Formen, die einen anderen Prot haben, oder kan ich das ganze über die zwei schon existierenden laufen lassen?

TheMiller 2. Jun 2004 17:22

Re: Code aus code-lib (dateien per indy...)
 
Warum solltest du dafür zwei neue Komponenten erstellen? Probier es mal aus, ob es so funktioniert. Wenn nicht, schliesst du Server/Client und öffnest eine neue Verbindung mit den Daten, die du bei den neuen Komponenten eingegeben hättest.

So würde ich das machen, wenn ich dich richtig verstaden habe! :hi:

F.W. 2. Jun 2004 18:25

Re: Code aus code-lib (dateien per indy...)
 
Das Problem liegt beim Empfangen: Woher weiß ich, dass da gerade ein Stream reinkommt, und kein Text? (Habe das nurmal mit WinSockets gemacht, und da gabs das Problem, gibts das hier überhaupt noch?)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 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