AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TIdFTP und falsches Systemdatum + Systemzeit
Thema durchsuchen
Ansicht
Themen-Optionen

TIdFTP und falsches Systemdatum + Systemzeit

Ein Thema von Andidreas · begonnen am 6. Nov 2006 · letzter Beitrag vom 7. Nov 2006
Antwort Antwort
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

TIdFTP und falsches Systemdatum + Systemzeit

  Alt 6. Nov 2006, 16:32
aloha...

bin grad beim testen schier verzweifelt...


folgendes... ein programm soll in einem bestimmten rythmus ablaufen (z.B. jeden Montag um 22:00:00)
um dies zu erreichen, vergleiche ich das aktuelle datum + uhrzeit mit einem errechneten datum + uhrzeit...
die routinene funktionieren!!!

beim testen bin ich aber auf folgendes problem gestossen...
wenn ich zum testen das datum und die uhrzeit am pc veränder (also z.b. auf 13.11.2006 22:00:00) dann krieg ich jedes mal ein problem beim ini file auslesen (indem sich die ftp daten befinden) und ich kann nicht zum ftp verbinden...

woran liegt das, ist delphi das lesen einer ini datei, oder die TIdFTP Komponente so emfpindlich, das sie es nicht verträgt wenn ich am pc meinem programm ein falsches datum und uhrzeit vorspiele???
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: TIdFTP und falsches Systemdatum + Systemzeit

  Alt 6. Nov 2006, 18:41
Deine Funktion zum Auslesen der INI-Datei hat einen Bug. (zeig mal Code)
Ich würde einfach einen Button ("jetzt übertragen") aufs Formular setzen, dann brauchst du
die Systemzeit nicht ändern.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

Re: TIdFTP und falsches Systemdatum + Systemzeit

  Alt 7. Nov 2006, 08:13
hmm das die prozedur nen bug hat glaub ich nicht, aber egal hier mal der code...

Delphi-Quellcode:
function TMain_Form.fnLoadFile() : Boolean;

var
Ini : TMemIniFile;

begin

  If FTP.Connected = True Then
  Begin
    FTP.Quit;
    FTP.Disconnect;
  End;

  Ini := TMemIniFile.Create(ExtractFilePath(Application.ExeName) + 'ProgName.ini');

  FTP.Host := Ini.ReadString('FTP', 'Host', 'NoData');
  FTP.UserName := Ini.ReadString('FTP', 'User', 'NoData');
  FTP.Password := Ini.ReadString('FTP', 'Password', 'NoDate');

  Try
    FTP.Connect;

    If FTP.Connected = True Then
    Begin
      FTP.ChangeDir('/Directory');
      glFileName := fnConvertFileNameFTP();
      FTP.Get(glFileName, 'C:\Temp\' + glFileName,
              True, False);
    End;

  Finally
    FTP.Quit;
    FTP.Disconnect;
  End;
{ DONE : Fehler bei Download von FTP / FileExists??? }
  If Not FileExists('C:\Temp\' + glFileName) Then
  Begin
    prWriteErrMsg('Error while Downloading ZPDMMCIDL File!');
    fnLoadFile := False;
  End
  Else
  Begin
    fnLoadFile := True;
  End;

end;
das mit dem button "geht nicht" bzw. nur einmal...

der ablauf von dem prog is ungefähr so...
-programm wird auf einem server gestartet...
-admin drückt start...
-es erfolgt ein 1. lauf...
-es wird der nächste lauf (also datum und uhrzeit) errechnet...
-das programm wird in denn tray minimiert und da läufts so vor sich hin und überprüft in
regelmässigen abständen die uhrzeit und das datum...
-ist das datum = dem errechneten datum dann arbeitet das programm die bestimmten routinen
wieder ab...
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: TIdFTP und falsches Systemdatum + Systemzeit

  Alt 7. Nov 2006, 10:25
1.) Du hast vergessen, das Objekt Ini (: TMemIniFile) wieder mit .Free freizugeben.
2.) Du hast 2 Aufgaben a.) einlesen der Parameter aus dem Inifile b.) FTP-Download
diese beiden Aufgaben sollten jeweils getrennt in einer eigenen Procedure/Funktion liegen.
Das verbessert die Test- und Debugbarkeit, da nun jede Aufgabe getrennt getestet/debuggt werden kann.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

Re: TIdFTP und falsches Systemdatum + Systemzeit

  Alt 7. Nov 2006, 11:09
hmm ok das mit dem freigeben hab ich wirklich vergessen... danke!

aber an dem kann mein fehler imho nicht liegen...

folgende test hab ich gemacht
1) systemdatum und uhrzeit geändert um denn gewünscht test durchführen zu können
2) nach dem ich mit der obigen variante immer auf die schnauze geflogen bin, hab ich das datum im debbug modus verändert, und da gings dann... also kanns ja an der ini nicht liegen weil sie hier sonst hätte denn gleiche fehler verursachen müssen...
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: TIdFTP und falsches Systemdatum + Systemzeit

  Alt 7. Nov 2006, 11:32
Du gehst bei der Fehlersuche noch nicht systematisch vor.
Du hast 2 Aufgaben a.) einlesen der Parameter aus dem Inifile b.) FTP-Download
Also trenne diese beiden Aufgabe doch mal.
Dann kommt ein (Test-)Button aufs Formular:
Delphi-Quellcode:
procedure TMain_Form.Button42Click(Sender:TObject);
begin
   Assert(Assigned(FTP));
   // um sämliche Fehler auszuschliesen
   // werden hier die Parameter hartcodiert zugewiesen
   // (nur für Test)
   FTP.Host := 'hostname
   FTP.UserName := 'user';
   FTP.Password := 'password';
   if not DownloadFTPFile then // die Funktion für den FTP dwonload
      ShowMessage('Download fehlgeschlagen');
end;
Du kümmerst dich weder um das Datum noch um die INI-Datei!!!
Jetzt diesen Button mehrfach drücken und schauen was passiert und die downgeloadete Datei anschauen.
Ich denke das Prinzip sollte jetzt klar sein:
Problem in Teilaufgaben zerlegen und beweisen, dass jede Teilaufgabe für sich funktioniert.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

Re: TIdFTP und falsches Systemdatum + Systemzeit

  Alt 7. Nov 2006, 11:49
die prozedur mit dem download funktioniert einwandfrei, da ich diese prozedur schon in mehreren programm (in denen der user wenn er lustig ist bis zu 1.000 denn button drücken kann)...

aber ich werd deinen vorschlag mal ausprobieren...
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  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 00:05 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