Finde Fehler in Programm nicht
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,
ich habe heute dieses Tutorial gemacht: http://www.youtube.com/watch?v=bBBH1MT89dg. Ich erhalte jetzt nach dem Start folgende Fehlermeldung: Anhang 40415 Danach öffnet sich das Programmfenster. Wenn man jetzt auf Updaten klickt, erscheint noch eine Meldung: "Verbindung besteht bereits" Das Kennwort und der Benutzername für den Server stimmen, da er die Datei update.txt herunterlädt. Hier der Link für das Programm: Anhang 40416 Vielleicht sieht ja jemand meinen Fehler und ich war einfach nur zu dumm und habe ihn übersehen. :wall: Sebastian |
AW: Finde Fehler in Programm nicht
Guten Abend,
versuche mal aus connect ein ftp.connect zu machen.
Delphi-Quellcode:
und dann auch in der Methode update.
procedure TFormMain.FormCreate(Sender: TObject);
var Update, Befehl, BefehlText:TStringList; i:Integer; begin FTP.Connect; // <--- Update:=TStringList.Create; CreateDir('tmp'); FTP.Get('updates.txt','tmp\updates.txt',true); Update.LoadFromFile('version.txt'); VersionAk:=Update[0]; Update.Clear; Update.LoadFromFile('tmp\updates.txt'); connect ist hier die methode von TForm und nicht von tidFtp daher scheint der Aufruf connect in Ordnung zu sein. Warum rufst Du die Methode update nicht im form.create auf? Don't repeat yourself (DRY) Grüße Klaus |
AW: Finde Fehler in Programm nicht
Zitat:
Delphi-Quellcode:
Zumal danach in der Methode auch FTP.Get() ausgeführt wird.
type
TFormMain = class(TForm) FTP: TIdFTP; Ich denke, da fehlt sogar ein
Delphi-Quellcode:
, auch wenn ich das mangels Kenntnis der Klasse nicht mit Bestimmtheit sagen kann.
FTP:= TidFTP.Create;
MfG Dalai |
AW: Finde Fehler in Programm nicht
Connect ist richtig.
Die FTP-Komponenten wird über die DFM erstellt. Dann gibt es eine Variable Update in der Methode Update. Und eine nicht verwendete Variable Befehle. Was mir erstmal auffällt, sind die "bösen" relativen Pfade. Viele "böse" globale Variablen. Vergleiche auf True
Delphi-Quellcode:
.
if UpdatingActive=True then
#10#13 ? Verwende sLineBreak oder zumindestens das Richtige #13#10 (Windows CR+LF). Entweder du debuggst das Programm mal und schaust wo es knallt oder du baust dir ein Logging ein, was die letzte funktionierende Stelle zeigt, oder halt eine Menge ShowMessages. Zitat:
Wurden die Versions-Labels aktualisiert? (ist er also noch bis zum Vergleich gekommen) Warum macht die Funktion Update eigentlich nichts? Außer die Versionen zu laden, zu Vergleichen und den InstallButton zumzufärben? In FormCreate steht aber sehr viel "böser" Code ... Sicher, daß die update.txt nicht von dort ist? |
AW: Finde Fehler in Programm nicht
Im FormCreate fehlt das
Delphi-Quellcode:
und natürlich auch das
Befehl := TStringList.Create;
Delphi-Quellcode:
.
Befehl.Free
Daher scheitert dieser Teil:
Delphi-Quellcode:
for i := 1 to Update.Count - 1 do
begin Befehl.Clear; <--- hier müsste die Schutzverletzung auftreten!!! ExtractStrings([';'],[],PChar(Update[i]),Befehl); //Befehl auswerten if Befehl[0]='dir' then CreateDir(Befehl[1]); if Befehl[0]='del' then DeleteFileDir(Befehl[1]); if Befehl[0]='get' then begin Inc(FileCount); FTP.Size(Befehl[1]); FTP.Get(Befehl[1],Befehl[2],true); pbGesamt.Position:=pbGesamt.Position+1; end; end; |
AW: Finde Fehler in Programm nicht
Anscheinend hat
Code:
und
Befehl := TStringList.Create;
Code:
gefehlt, denn hetzt Funktioniert es richtig. Leide beginnt das Update jetzt sofort beim Programmstart und nicht erst, wenn der Button gedrückt wird. Kann man das noch ändern?
Befehl.Free;
Sonst schon einmal vielen Dank für die Hilfe und noch schöne Weihnachten. |
AW: Finde Fehler in Programm nicht
Zitat:
MfG Dalai |
AW: Finde Fehler in Programm nicht
Zitat:
Zitat:
Du hast das genau so programmiert. Zitat:
|
AW: Finde Fehler in Programm nicht
Danke für eure Hilfe, jetzt funktioniert es. Ich hatte den Code für das herunterladen der Dateien schon im OnCreate. Dann führt er das natürlich sofort aus.
|
AW: Finde Fehler in Programm nicht
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe jetzt ein neues Problem. TXT Dateien lädt er problemlos herunter und man kann diese danach noch öffnen. Bei Bildern oder .exe Dateien kommt folgende Meldung:
Anhang 40453 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:58 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