![]() |
[FTP] Daten austausch Programm mit macken.
Hallo Leute! hier ist jetzt mein zweiter anlauf. Theoretisch sollte alles klappen, aber irgentwie lädt er die datei nicht herunter. WAS MACHE ICH FALSCH? Ich bin im moment wirklich Ratlos.
Delphi-Quellcode:
Ich hab ein bischen was ausgelassen, aber das gehörte eh nicht zum Problem. Wär echt toll wenn einer von euch wüsste was ich hier falsch mache...
var
Form1: TForm1; SpeicherOrt,uploadfilename,localfile,Initialien,s:string; x:integer; implementation {$R *.dfm} procedure check; begin form1.idftp1.disconnect; form1.idftp1.connect(true); form1.idftp1.List(form1.listbox2.Items,'',false); x:=0; repeat x:=x+1; s:=form1.listbox2.items[x]; if s[1]+s[2] = initialien[1]+initialien[2] then form1.listbox1.Items.Add(s); until x=form1.listbox2.ItemIndex; x:=1; form1.idftp1.Get(form1.ListBox1.Items[1],Speicherort+form1.ListBox1.Items[1],true); // <<<< da, das Funktioniert aus irgenteinem Grund nicht end; procedure TForm1.Button3Click(Sender: TObject); begin LMDDirdlg1.Execute; edit5.Text:=LMDDirdlg1.Path; end; procedure TForm1.Button4Click(Sender: TObject); begin idftp1.Disconnect; case MessageBox(0, 'Haben sie wirklich alles ausgefüllt? Schauen sie lieber nochmal nach bevor sie "Ja" klicken', 'Sicherheitsfrage :-)', MB_ICONQUESTION or MB_YESNO) of idYes: begin MessageDlg('Gut :-)'+#13#10+'Nun wird die Verbindung zum Internet aufgebaut', mtInformation, [mbOK], 0); idftp1.Host:=edit4.Text; idftp1.Password:=edit3.Text; idftp1.User:=edit2.Text; SpeicherOrt:=edit5.text; Initialien:=edit1.text; check; timer1.Enabled:=true; end; end; end; procedure TForm1.IdFTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode); begin if x<listbox1.ItemIndex then begin x:=x+1; form1.idftp1.Get(form1.ListBox1.Items[x],Speicherort+form1.ListBox1.Items[x],true); end else label6.Caption:= 'Es sind '+inttostr(x)+ ' neue Dateien da!'; end; procedure TForm1.Timer1Timer(Sender: TObject); begin check; end; end. mfG J.P. |
Re: noch ein Problem mit idFTP
Zitat:
//NACHTRAG: Und natürlich nicht ganz unwichtig: Was heißt "funktioniert nicht"? Fängt es dann an zu regnen oder wird eine Exception geworfen oder wird eine falsche Datei heruntergeladen oder ...? |
Re: noch ein Problem mit idFTP
Also, erstmal Danke für deine Antwort. Das funktioniert nicht in dem sinne, dass da überhaupt nichts passiert.
Mir fällt grad selber ein was ich falsch gemacht haben könnte... THX! Ich gebe dann bescheid obs das war oder nicht. |
Re: noch ein Problem mit idFTP
Klar, dass ich mit item[0] anfangen müsste hätte ich wissen müssen.
Hab ich jetzt auch geändert. Trotzdem funktioniert das nicht, da der Warnhinweis (Listenindex überschreitet das Maximum) erscheint und die Procedure vor der letzten funktion abbricht. So, da das aber nicht mit ItemIndex funktioniert, und scheinbar auch nicht mit listboxX.capacity, würde ich gerne wissen: Mit welcher Funktion kriegt man denn die Anzahl der items heraus? |
Re: noch ein Problem mit idFTP
Zitat:
Und denke daran: Wenn Count = 4 ist, dann geht der Index von 0 bis 3. |
Re: noch ein Problem mit idFTP
Danke :-) mvfG J.P.
|
Re: noch ein Problem mit idFTP
könntest du bitte dem Thema einen Aussagekräftigen Titel geben? :-D
|
Re: [FTP] Daten austausch Programm mit macken.
Hab ich gemacht... Ich bin jetzt auch endlich mit dem Programm fertig, funktioniert auch... :)
Nochmal Danke... |
Re: [FTP] Daten austausch Programm mit macken.
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Leutz! Eigentlich hatte ich das Programm als fertig eingestuft, doch dem war wohl nicht so. Ich hab echt keine Ahnung mehr, was der Fehler seinkönnte.
Also hier die funktionen: Man kann daten hochladen und runterladen :) Vor de hochgeladene Datei werden jeweils die initialien des andern gesetzt, damit das Programm dessen merkt, welche Datei es herunterladen soll. So können dann versch. User daten austauschen... Ich hab jetzt alles im Anhang. HILFE! mfG J.P. |
Re: [FTP] Daten austausch Programm mit macken.
-=| Push |=-
|
Re: [FTP] Daten austausch Programm mit macken.
Neue Frage, neuer Thread.
Und verkneife dir bitte, nach nicht mal einer Stunde ein Thema zu pushen. //Achja ... rar-Dateien kann ich nicht öffnen. |
Re: [FTP] Daten austausch Programm mit macken.
Liste der Anhänge anzeigen (Anzahl: 1)
OK, sry...
Ich habs hier nochmal als zip. Ich hab das ausserdem extra wieder hier rein geschrieben, da das u.U. das gleiche Problem ist... |
Re: [FTP] Daten austausch Programm mit macken.
Zitat:
Es mag jetzt hart klingen, aber ich habe keine Lust, dir wieder alles aus der Nase zu ziehen. Beschreibe bitte klar und deutlich, was du an welcher Stelle im Programm erwartest und was genau stattdessen als Fehlverhalten auftritt. |
Re: [FTP] Daten austausch Programm mit macken.
kein Problem. Ich hab grad oben selbst alles nochmal nachgelesen und gemerkt was für ein Hunbug das ist. Entschuldingung.
Das Programm soll eine Datei Hochladen, und diese mit den Initialien des Empfängers kennzeichnen (initialien + Dateiname). Das Heraufladen funktioniert auch wunderbar. Später, soll der andere Rechner automatisch diese Datei runterladen. Die mit seinen Initialien. Dafür liste ich mir alle Dateien des Servers auf und lasse mit hilfe einer Schleife die Dateien mit der Kennung in einer neuen Liste auflisten. Diese sollen dann nacheinander von idftp1 heruntergeladen werden. Und das funktioniert nicht. Um den Download einer neuen Datei nach dem ersten download zu starten, hab ich das in die Onworkend procedure von idftp1 geschrieben. Nur irgendwie wird nichts heruntergeladen. Und manchmal kommt noch die Fehlermeldung 200, die ja eigentlich sagt, dass alles in ordnung ist. Die showmessage mit dem 'check' hab ich mir nur reingeschrieben, um zu gucken ob das bis dahin überhaupt läuft. Dummerweise kann ich auf meinem Inet rechner nicht Delphi installieren, und hab an dem mit Delphi kein Internet. Also kann ich die ganzen fehler nicht richtig verfolgen. Ich hoffe das war jetzt halbwegs verständlich. Nochmal entschuldigung. |
Re: [FTP] Daten austausch Programm mit macken.
-=| Push |=-
Tut mir leid, dass ich nochmal Pusche, aber ich finde den fehler nicht und verzweifle Langsam. |
Re: [FTP] Daten austausch Programm mit macken.
Zitat:
|
Re: [FTP] Daten austausch Programm mit macken.
Okay, ich habe mal geschaut. Aber so werde ich dir nicht helfen können. Ich sage dir mal warum und was du grundsätzlich meiner Meinung nach bedenken solltest.
1.) Folgende Units kenne ich nicht und musste sie aus Uses herausnehmen: LMDDirDlg, StartMark, LMDCustomComponent, LMDContainerComponent, LMDBaseDialog 2.) Folgende Objekte kann ich somit nicht erzeugen und musste sie aus TForm1 herausnehmen: LMDDirDlg1: TLMDDirDlg; StartMark1: TStartMark; ==> Was danach übrig bleibt, läuft ganz einfach überhaupt nicht. Und somit sind erstmal die Karten hier gelegt. 3.) Die Behandlungsroutine für dein Upload besitzt überhaupt keine Serverdaten (Host, Username). Entweder die werden irgendwo in den bei mir nicht vorhandenen Units definiert (siehe 1. + 2.), oder sie müssen im Objektinspektor eingetragen werden. Ich kann das nicht wissen. 4.) Welche Indys benutzt du? In der Routine deines LOS-Buttons zum Downloaden erscheint idftp1.User:=edit2.Text. TIdFTP.User kennt meine TidFTP-Komponente nicht. Die kennt TidFTP.Username. 5.) Vor jedem Connect machst du erstmal pauschal ein idftp1.Disconnect; Was soll das? Programmiere deine Anwendung so, dass sie (und du als Programmierer) jederzeit weiß, wann eine Verbindung besteht und wann nicht. Implementiere die Ereignisse TidFTP.OnConnected und TidFTP.OnDisconnected, um jederzeit die Übersicht zu behalten, wann die Verbindung auf- und abgebaut wurde, anstatt überall "sicherheitshalber" ein Disconnect-Befehl einzubringen. 6.) Gebe deinen Buttons im Programm nicht nur aussagekräftige Beschriftungen, sondern auch Namen (ebenso den Edits). Man findet sich dann viel besser im Quelltext zurecht. Grundsätzlich: Vielleicht konntest du nicht ahnen, dass dir dein FTP soviel Schwierigkeiten bereiten würde und du fremde Hilfe benötigst, aber nun weißt du es. Ich würde dir daher vorschlagen, du baust dir ein Programm erstmal nur mit den FTP-Funktionalitäten. Also: Gezielter Auf- und Abbau der Verbindung. Dazwischen Upload und/oder Download. Das sind quasi 4 Buttons, eine idFTP-Komponente und wenn du willst ein Memo zur Anzeige von selbsterstellten Statusmeldungen. Natürlich kann auch der Dialog zur Dateiauswahl schon rein oder noch ein Button, um mit der Methode TidFTP.List den gerade aktuellen Inhalt vom Server zu holen, oder, oder ... Aber eben so schlank wie möglich - nur um die FTP-Funktionalitäten zu ergründen. Ein Beispiel, was ich mit dem Memo meine. So sagt die Kiste dir beispielsweise, wenn die Verbindung wirklich steht:
Delphi-Quellcode:
So mache ich es immer. Damit erhält man ein Verständins für die idFTP-Komponente und ihre Auswirkungen.
procedure TForm1.IdFTP1Connected(Sender: TObject);
begin Memo1.Lines.Add('Verbindung steht.'); ... end; Solltest du damit trotzdem nicht klarkommen, kannst du mit den kleinen, eindeutig zweckgebundenen Code-Schnipseln deines Programms Andere um Hilfe bitten (mich z.B. :stupid: ). Wenn dann irgendwann dein "FTP-4-Button-Programm" läuft, kannst du die Funktionen in dein eigentliches Projekt einbauen. |
Re: [FTP] Daten austausch Programm mit macken.
Zitat:
![]() @J.P.: wenn du schon Zusatzkomponenten in einem hier hochgeladenem Code verwendest, dann wäre es besser dieses mit anzugeben ... eventuell auch mit Quelle (falls es eher unbekannt ist ... so wie z.. dieses TStartMark), denn so kann ja keiner etwas Testen ;) [add] OK, bei ![]() ![]() |
Re: [FTP] Daten austausch Programm mit macken.
Zitat:
Ich persönlich suche die LMD-Sachen nicht. Ich werde sie auch nicht zu Entstör- bzw. Testzwecken installieren. Daher in meinem Vorposting der Vorschlag mit dem "nackten" FTP-Programm. Bis das läuft, bin ich gerne dabei. :) Sollten danach - also beim endgültigen Programm - irgendwelche Funktionen mir unbekannter Komponenten ins Spiel kommen oder auch nur der Verdacht dessen bestehen (so wie im Moment), bin ich raus. |
Re: [FTP] Daten austausch Programm mit macken.
OK, ich werds mal versuchen. Obwohl das für dieses Projekt jetzt rel. schade ist... Na gut. Kann aber was länger dauern, da ich immer zwischen den Rechnern (und 2 Stockwerken!) hin und her muss, wenn da was nicht läuft :(
EGAL, da muss ich jetzt wohl durch. Danke für die Tipps. J.P. PS: StartMark gibts bei Torry.net und stellt einfach nur einen kurzen Startbildschirm dar. (ich hab keine Lust für jedes Programm das neu zu schreiben) Hier ist der Link: ![]() PPS: In der exe (auch in der Zip-file) siehst du wie das aussehen sollte. Edit: Link hinzugefügt |
Re: [FTP] Daten austausch Programm mit macken.
Liste der Anhänge anzeigen (Anzahl: 1)
Hier bin ich wieder. Ich hab nu so ein kleines Prog geschrieben... Funktioniert nicht, da der sich sofort nach dem einloggen wieder ausloggt. :-( Hilfe!
Ich hab hier jetzt mal alles im Anhang. |
Re: [FTP] Daten austausch Programm mit macken.
Bevor ich weitermache, bitte beantworten:
Zitat:
|
Re: [FTP] Daten austausch Programm mit macken.
Hallo J.P.
ich habe dein Miniprogramm probiert, funktioniert bei mir (mit Indy 10) einwandfrei, nachdem ich folgendes geändert habe: User ---> Username Connect(true) ---> Connect Upload funktionierte Download nicht, da hier noch Parameter fehlen. mfg Herbert |
Re: [FTP] Daten austausch Programm mit macken.
@Ingo: Ich weiß nich genau welche Indys das sind, Ich hab Delphi 6 Professional und mir keine neuen Installiert.
Bei mir gibts nur User und kein Username. Bei http1 gibts das. bei ftp (bei mir) nicht. @hsbc: Danke für den Test :) |
Re: [FTP] Daten austausch Programm mit macken.
WAHNSINN. Das hat nur an diesem Dämlichem True gelegen (obwohl das im normalfall sowieso true ist?????) Egal, das einfache Prog funktioniert jetzt tadellos. Ich muss es nur noch auf den FTPExchanger übertragen.... :)
|
Re: [FTP] Daten austausch Programm mit macken.
Zitat:
Ich kann's jetzt gerade nicht testen, aber bei den Indys 9.0.14 (oder 18?) läuft meines Wissens das Connect korrekt. Wieso das nun lt. dem Test von hsbc bei den 10-er Indys schon wieder anders ist, wissen die Götter. Letztlich würde ich nicht davon ausgehen, dass die Indys in D6 wasserdicht sind. Ich habe die ursprünglichen, die bei mir bei D7 dabei waren, auch schon laaaaange upgedatet, weil sie Ärger verursachten (bin aber noch bei einer 9-er Version geblieben, weil die seither bei mir keine Macken wieder gezeigt hat). Du hast sogar noch ältere. Du siehst: Mit meinen funktionierenden 9-er Indys hätte ich mir einen Wolf testen können, ich hätte es nie erfahren, was bei dir nicht geht. @hsbc Kannst du mir mal deine procedure TIdFTP.Connect(...) aus der Unit IdFTP.pas schicken? Danke. |
Re: [FTP] Daten austausch Programm mit macken.
Jetzt läuft alles, bis es zum eigentlichen Download kommt. Dann wird nur die erste Datei vollständig heruntergeladen, und aus der nächsten wird eine 0 -byte datei.
Ich hab den Fehler, weiß aber leider nicht wie ich ihn beheben kann. Es kommt nach erfolgreichem 1. Download zu einer Fehlermessage, die sagt dass die erste Datei heruntergeladen wurde. Daraufhin bricht die OnWorkEnd procedure ab. Wie kann man jetzt erzwingen, dass diese Trotzdem abgearbeitet wird? Ich bin jetzt fast fertig :-) Danke an alle. @ingo: klar, ich kopier sie dir. muss wie schon gesagt wieder 2 Stockwerke in angriff nehmen.... |
Re: [FTP] Daten austausch Programm mit macken.
Liste der Anhänge anzeigen (Anzahl: 1)
*schwitz*
hier ist sie. |
Re: [FTP] Daten austausch Programm mit macken.
Bei try...except werden die Prozeduren und Funktionen doch auch abgebrochen, oder nicht?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:17 Uhr. |
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