AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit idFTP

Ein Thema von J.P. · begonnen am 24. Jan 2007 · letzter Beitrag vom 26. Jan 2007
Antwort Antwort
J.P.

Registriert seit: 2. Sep 2006
Ort: Bonn
131 Beiträge
 
Delphi 6 Professional
 
#1

Problem mit idFTP

  Alt 24. Jan 2007, 09:19
Morgen!
Ich habe ein FTP Programm geschrieben. Funktioniert auch alles schön und gut, aber die Dateien die ich herunterlade haben auf der Festplatte nur eine Größe von 0 Byte.
Nur der Dateiname steht da, aber die Datei selber steht da nicht? Ich habs mit den Indy komponenten probiert (hab damit aber fast keine Erfahrung). Mit idFTP.
Ich hab schon alles mögliche probiert umzustellen, aber hilft nichts.

Schonmal danke für eure antworten...
J.P.
...mfG


Phil
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Problem mit idFTP

  Alt 24. Jan 2007, 09:25
Ähm, wie wäre es mit etwas Code?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
J.P.

Registriert seit: 2. Sep 2006
Ort: Bonn
131 Beiträge
 
Delphi 6 Professional
 
#3

Re: Problem mit idFTP

  Alt 24. Jan 2007, 09:47
Delphi-Quellcode:
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if (edit1.Text='') and (edit2.Text = '') then showmessage('Bitte tragen sie ihre Daten ein!') else
 begin
  timer1.Interval:=strtoint(edit6.Text)*1000;
  timer1.Enabled:=true
 end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 try
  idftp1.Get(edit3.Text,edit7.Text);
 except
  timer1.Enabled:=false;
  showmessage('Ein Fehler ist aufgetreten, die Aktion wird abgebrochen');
 end;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
 try
  idftp1.Put(edit10.text,edit4.text);
 except
  timer2.Enabled:=false;
  showmessage('Ein Fehler ist aufgetreten, die Aktion wird abgebrochen');
 end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if (edit1.Text='') and (edit2.Text = '') then showmessage('Bitte tragen sie ihre Daten ein!') else
 begin
  timer2.interval:=strtoint(edit8.Text)*1000;
  timer2.Enabled:=true;
 end;
end;

procedure TForm1.Timer3Timer(Sender: TObject);
begin
 try
  idftp1.Delete(edit5.Text);
 except
  timer3.Enabled:=false;
  showmessage('Ein Fehler ist aufgetreten, die Aktion wird abgebrochen');
 end;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
 try
  timer1.Enabled:=false;
  timer2.Enabled:=false;
  timer3.Enabled:=false;
 finally
  showmessage('abgebrochen!');
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if (edit1.Text='') and (edit2.Text = '') then showmessage('Bitte tragen sie ihre Daten ein!') else
 begin
  timer3.interval:=strtoint(edit9.Text)*1000;
  timer3.Enabled:=true;
 end;

end;
procedure TForm1.Button4Click(Sender: TObject);
begin
 try
  idftp1.SocksInfo.Host:=edit11.Text;
  idftp1.SocksInfo.Password:=edit2.Text;
  idftp1.SocksInfo.UserID:=edit1.Text;
  idftp1.Host:=edit11.Text;
  idftp1.Password:=edit2.Text;
  idftp1.user:=edit1.Text;
 except
  showmessage('Es ist ein Fehler aufgetreten');
 end;
end;

end.
Ich hoffe es ist nicht zuviel, das ist alles an Quellcode den ich geschrieben hab...
J.P.
...mfG


Phil
  Mit Zitat antworten Zitat
Benutzerbild von p0w3r5tr34m3r
p0w3r5tr34m3r

Registriert seit: 18. Aug 2003
Ort: Monheim am Rhein
153 Beiträge
 
RAD-Studio 2009 Pro
 
#4

Re: Problem mit idFTP

  Alt 24. Jan 2007, 10:20
Hi,

darf man fragen wieso, du Put() und Get() über Timer laufen lässt? Einmal Put, Get, ... ausgeführt sollte doch eigentlich reichen, oder irre ich mich da ? Habe bisher noch nicht allzuviel mit Indy gearbeitet.


Mit freundlichen Grüßen
Florian Cülter
ich bin ein notorischer alles-klein-schreiber!

der 100. Beitrag nach 3 Jahren 25 Wochen und einem Tag
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Problem mit idFTP

  Alt 24. Jan 2007, 10:36
Die Sache mit den Timern ist schon merkwürdig.

Was passiert denn, wenn das Interval abgelaufen ist? Wird der Transfer abgebrochen?

Was passiert wenn der Timer beim nächsten Mal wieder startet? Wird ein neuer FTP Transfer eingeleitet, wird die
Zieldatei überschrieben?

Ich würde Dir raten, die Konzeption noch einmal zu überdenken.
Ein gutes Tutorial zu dem Indy FTP Client kannst Du hier finden - > http://www.dsdt.info/tutorials/indy/?page=4

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
J.P.

Registriert seit: 2. Sep 2006
Ort: Bonn
131 Beiträge
 
Delphi 6 Professional
 
#6

Re: Problem mit idFTP

  Alt 24. Jan 2007, 10:43
Das soll nach einer bestimmten Zeit halt wiederholt werden, desswegen die Timer...
Ich werd mir das mal durchlesen, danke.
J.P.
...mfG


Phil
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Problem mit idFTP

  Alt 24. Jan 2007, 11:46
wie hoch ist der Interval von Timer1? Du solltest beim betreten des OnTimerEvents diesen abschalten sonst kann es passieren das eine Datei heruntergeladen wird und während diese noch lädt wird das Event erneug aufgerufen und lädt die Datei auch wieder runter. Somit überschneiden sich 2 Downloads und nichts klappt mehr.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
J.P.

Registriert seit: 2. Sep 2006
Ort: Bonn
131 Beiträge
 
Delphi 6 Professional
 
#8

Re: Problem mit idFTP

  Alt 24. Jan 2007, 18:38
Ich habs mit 5 ausprobiert... raus kam dann nur diese 0 byte Datei... eigentlich war das nur der Dateiname... Liegt das vll daran, dass ich die Datei nicht als Stream runterlade? Wenn ja, dann weiß ich nicht wie ich diesen Stream abspeichern soll...
Hoffentlich weiß jemand Rat..

PS: Die Datei hatte nur 7,5 Kb, also dürften die 5 kein problem sein.
J.P.
...mfG


Phil
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#9

Re: Problem mit idFTP

  Alt 25. Jan 2007, 12:57
Hi,

5 was Millisekunden oder 5 Sek. ?
Die Konstruktion mit den Timern ist fürn Ars...
Kannste lieber gleich richtig mit Threads machen, wenn Du mehere Dateien hoch und runterladen willst, dann geht das sogar gleichzeitig.

Einen Stream speicherst Du mit der Klasse TFileStream !

Brauchst Du aber gar nicht !

Delphi-Quellcode:
lab_Action.Caption := 'Download : '+strFile;
try
  BytesToTransfer := IdFTP1.Size(strFile);
  IdFTP1.Get(strFile,sTargetFile,true);
except
  bError := true;
end;
strFile = Dateiname auf dem Server
sTargetFile = Lokaler Dateiname(Kompletter Pfad)

Greetz DataCool
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
J.P.

Registriert seit: 2. Sep 2006
Ort: Bonn
131 Beiträge
 
Delphi 6 Professional
 
#10

Re: Problem mit idFTP

  Alt 26. Jan 2007, 11:42
thx... ich werds mal ausprobieren. Das waren 5 sekunden. Ich hab das im Quelltext auch mal 1000 genommen (die Milisekunden).
Vielen Dank.

J.P.
J.P.
...mfG


Phil
  Mit Zitat antworten Zitat
Antwort Antwort


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 06: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