AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi quellcode frage zu einem datei senden tutorial mit den indys
Thema durchsuchen
Ansicht
Themen-Optionen

quellcode frage zu einem datei senden tutorial mit den indys

Ein Thema von ghost007 · begonnen am 1. Sep 2006 · letzter Beitrag vom 2. Sep 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#1

quellcode frage zu einem datei senden tutorial mit den indys

  Alt 1. Sep 2006, 15:23
Hallo,
ich hab mir das datei versenden per indys tutorial von datacool gesaugt.
Und komme damit recht gut klar, ich verstehe blos nicht wohin und wie er die empfangene datei abspeichert.
Hier der quellcode des servers der die datei empfängt:
Delphi-Quellcode:
unit f_Main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, IdAntiFreezeBase, IdAntiFreeze, IdBaseComponent, IdComponent,
  IdTCPServer, ComCtrls;

type
   TfrmMainServer = class(TForm)
    gb_Einstellungen: TGroupBox;
    ed_Port: TEdit;
    TcpServer: TIdTCPServer;
    IdAntiFreeze1: TIdAntiFreeze;
    Label1: TLabel;
    cmd_StartServer: TButton;
    cmd_EndServer: TButton;
    Label2: TLabel;
    lab_SvrStatus: TLabel;
    gb_Threads: TGroupBox;
    ScrollBox1: TScrollBox;
    gb_Test: TGroupBox;
    pBar: TProgressBar;
    Label3: TLabel;
    lab_FileSize: TLabel;
    Label5: TLabel;
    lab_ReceivedBytes: TLabel;
    procedure cmd_StartServerClick(Sender: TObject);
    procedure cmd_EndServerClick(Sender: TObject);
    procedure TcpServerExecute(AThread: TIdPeerThread);
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  frmMainServer: TfrmMainServer;

implementation

uses FileReceiver;

{$R *.DFM}

procedure TfrmMainServer.cmd_StartServerClick(Sender: TObject);
begin
   // erstmal eventuelle bestehende Verbindungen trennen
   TcpServer.Active := false;
   // Bindings leeren
   TcpServer.Bindings.Clear;
   // Port zuweisen, wenn kein gültiger Wert eingetragen ist 9876 als Standard verwenden
   TcpServer.DefaultPort := StrToIntDef(ed_Port.Text,9876);
   try
      TcpServer.Active := true;
   except
      raise;
   end;
   // Ist der Server erfolgreich gestartet worden ?
   if TcpServer.Active then begin
      // jetzt die Anzeige-Elemente dem Status anpassen
      cmd_EndServer.Enabled := true;
      cmd_StartServer.Enabled := false;
      lab_SvrStatus.Font.Color := clGreen;
      lab_SvrStatus.Caption := 'Gestartet';
   end;
end;

procedure TfrmMainServer.cmd_EndServerClick(Sender: TObject);
begin
   // Server anhalten/deaktivieren
   try
      TcpServer.Active := false;
   except
      raise;
   end;
   // Ist der Server erfolgreich beendet worden
   if not TcpServer.Active then begin
      // jetzt die Anzeige-Elemente dem Status anpassen
      cmd_EndServer.Enabled := false;
      cmd_StartServer.Enabled := true;
      lab_SvrStatus.Font.Color := clRed;
      lab_SvrStatus.Caption := 'Deaktiviert';
   end;
end;

procedure TfrmMainServer.TcpServerExecute(AThread: TIdPeerThread);
Var sClientMsg : String;
      FileReceiver : TFileReceiver;
begin
   try
      // Clientnachricht lesen
      sClientMsg := AThread.Connection.ReadLn(#$A,5500);
      FileReceiver := TFileReceiver.Create(AThread,sClientMsg);
      try
         // gültige Nachricht vom Client ?
         if FileReceiver.ServerMsgOK then begin
            // Datei jetzt empfangen
            if FileReceiver.Start then
               // Bestätigung zum Clientschreiben
               AThread.Connection.WriteLn('FILEOK')
            else
               // Error-Nachricht schreiben
               AThread.Connection.WriteLn('FILEERROR');
         end;
      finally
         FileReceiver.free;
      end;
   except
      AThread.Connection.Disconnect;
   end;
end;

procedure TfrmMainServer.FormShow(Sender: TObject);
begin
   // test-groupbox löschen
   gb_Test.free;
end;

end.

Im anhang befindet sich das oben beschriebene tutorial (server + client)
Angehängte Dateien
Dateityp: rar filesend_clientserver__indydemo_by_datacool__135.rar (393,6 KB, 12x aufgerufen)
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#2

Re: quellcode frage zu einem datei senden tutorial mit den i

  Alt 1. Sep 2006, 19:09
hat keiner ne idee?
is warscheinlich nich so schwer, aber ich komm net drauf..

MfG - Ghost
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: quellcode frage zu einem datei senden tutorial mit den i

  Alt 1. Sep 2006, 19:31
Zitat:
ich verstehe blos nicht wohin und wie er die empfangene datei abspeichert.
Ist fest in TFileReceiver codiert:
sFileName := 'C:\'+sFileName; mit Hilfe eines TFileStream
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#4

Re: quellcode frage zu einem datei senden tutorial mit den i

  Alt 1. Sep 2006, 21:32
ähm, ok , also mit einem TFileStream.
Wo und wie hilft mir deine zeile code weiter?
Kannst du das vielleicht etwas präzisieren?
z.B. von welchem typ ist sFileName?
und wo und wie setzte ich die zeile ein?

Danke schon mal - Ghost
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: quellcode frage zu einem datei senden tutorial mit den i

  Alt 1. Sep 2006, 21:40
Zitat:
Wo und wie hilft mir deine zeile code weiter?
das ist nicht mein Code sondern der Ausschnitt aus der Demo, in dem gespeichert wird. An dieser Stelle kannst du in der Demo anpassungen machen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#6

Re: quellcode frage zu einem datei senden tutorial mit den i

  Alt 1. Sep 2006, 21:45
ist die zeile im client oder server?
irgendwie find ich die nicht ...
hab warscheinlich grade tomaten auf den augen.

MfG - Ghost
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: quellcode frage zu einem datei senden tutorial mit den i

  Alt 1. Sep 2006, 21:48
In der Methode Start der Klasse TFileReceiver
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#8

Re: quellcode frage zu einem datei senden tutorial mit den i

  Alt 1. Sep 2006, 21:56
ok, ich bin zu dumm dazu ^^
könntest du bitte den code ausschnitt mit der editierten speicherung auf C:/ posten?
Wäre nett.


Danke schon mal - Ghost

[EDIT]
gefunden

hm, blos wie kann ihc das zur laufzeit ändern?
[/EDIT]
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: quellcode frage zu einem datei senden tutorial mit den i

  Alt 1. Sep 2006, 22:07
Zitat:
könntest du bitte den code ausschnitt mit der editierten speicherung auf C:/ posten?
Im Code ist der feste Pfad c:\ eingestellt. Duz könntest der Methode Start um einen Parameter für den Pfad erweitern, oder nen FileOpenDialog einbauen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#10

Re: quellcode frage zu einem datei senden tutorial mit den i

  Alt 1. Sep 2006, 22:14
hm, also ich hab grade mal versucht nen SaveDialog einzubauen:
Delphi-Quellcode:
    f_Main.SaveDialog1.FileName:=sFileName;
    if SaveDialog1.Execute then
       sFileName :=SaveDialog1.FileName;
Aber er sagt SaveDialog1 ist ein undeclared identifier.
Wie kann ich machen, das ich nicht nur variablen aus der unit f_Main sondern auch z.B. den SaveDialog nehmen kann?
[EDIT]
man muss die f_Main unter den uses haben und dann vo SaveDialog1 den namen der form nehmen.
Sieht dann so aus:
Delphi-Quellcode:
    frmMainServer.SaveDialog1.FileName:=sFileName;
    if frmMainServer.SaveDialog1.Execute then
       sFileName :=frmMainServer.SaveDialog1.FileName;
[/EDIT]

Danke - Ghost
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:28 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