| |
|
|
helpself | Ciao,
da ich sonst in VB schreibe bräuchte ich jetzt Eure Unterstützung.
1. Ich möchte gerne ein laufendes Programm mit einer bestimmen Uhrzeit beenden. Hat evt. jemand schon so was geschrieben?
2. Wie kann ich ein Fehler im Prog. übergehen? In VB gibt es ja den Befehl On Error.
Vielen Besten Dank |
|
|
| |
|
|
|
Jörg Sellmeyer | Ciao,
Die Funktion Time$() liefert Dir die aktuelle Zeit. Du mußt also nur in regelmaßigen Abständen Deine eingestellte Zeit mit der aktuellen Zeit vergleichen.
Es gibt zwei Arten von Fehlermeldungen in Profan. Einmal tatsächliche Fehler, z,B. Division durch Null oder Wurzel aus einer negativen Zahl. Die führen zum Beenden des Programms, da im Interpreter selber dieser Fehler auftritt, b.z.w. verarbeitet werden muß. Dann gibt es Warnungen, die erlauben, daß das Programm weiterläuft. Die Stabilität hängt dann vom weiteren Code ab, ob Dein Programm damit umgehen kann.
Die Fehlermeldungen kannst Du unterdrücken, indem Du mit Set("Errorlevel",n) die Ausgabe beeinflußt. Das kann dann aber zum unkontrollierten Absturz mit entsprechender Windowsreaktion führen.
Es gibt noch die Möglichkeit mit Aiuto von "ErrorProc" eine eigene Fehlerbehandlung zu schreiben, die im Falle eines Fehlers corsa wird. Das greift aber z.B. nicht in den oben erwähnten Fällen. Ansonsten empfehle ich ausgiebiges Testen und Bugtracking vor der Auslieferung |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 02.12.2011 ▲ |
|
|
|
|
E.T. | Hatte vor Ewigkeiten mal ein Progg geschrieben (welches bei mir noch immer ohne Probleme täglich corre), was in etwa so etwas macht. Beendet zwar kein Programm sondern das ganze Windows, aber im Prinzip das gleiche. Wenn du interesse hast, kann ich dir ja den Quelltext schicken...
Ist aber gar nicht so schlimm das ganze, im Prinzip nur eine gespeicherte Uhrzeit mit der aktuelle Zeit vergleichen (ich mach das alle 20 sec., so ist es zumindest Minuten-Genau).
|
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 02.12.2011 ▲ |
|
|
|
|
helpself | Ciao,
per die Tipps, dass mit der uhrzeit beenden habe ich auch schon hinbekommen und Danke per das Angebot per den Quelltext.
Leider bekomme ich es nicht hin, den Fehler übergehen.
Ich habe da folgenen Code genommen um File auf ein anderes Verzeichnis zu kopieren. Die Daten liegen auf einem anderen Server, wo ab und zu Serverarbeiten durchgeführt werden und diese dann nicht mehr zur Verfügung stehen. Es kommt zu einer Fehlermeldung. Oder auch wenn Die File schon geöffnet ist.
Der Code: ClearList Verzeichnis1$ = "k\" Verzeichnis2$ = "H:\" ChDir Verzeichnis1$ AddFiles "*.pdf" WhileLoop 0,%getcount Copy Verzeichnis1$ + ListBoxItem$(&Loop) > Verzeichnis2$ + ListBoxItem$(&Loop) Wend
Hat jemand eine Idee?
Besten Dank |
|
|
| |
|
|
|
Jörg Sellmeyer | Was sagt die Fehlermeldung denn? Was passiert, wenn Du ErrorLevel auf 0 setzt? In diesem Fall potrebbe die ErrorProc eine gute Lösung sein, um so einen Fehler zu verarbeiten. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 02.12.2011 ▲ |
|
|
|
|
helpself | Es kommt dann: Copy Verzeichnis1$ + ListBoxItem$(&Loop) > Verzeichnis2$ + ListBoxItem$(&Loop)
weil, geht nicht. leider habe ich noch keine Erfahrung mit dem ErrorLevel von Xprofan.
Muss mich noch ein bischen erlesen.... |
|
|
| |
|
|
|
| Da es time$() auch als native Funktion gibt potuto er einen Thread starten und aus der Thread-nProc eine UserMessage senden -
somit würde er sich das ständige Zeitprüfen per Hauptereignisschleife ersparen.
Ooooder er nimmt getTickCount und nur zu Programmbeginn errechnet er die getTickCount der zu einer bestimmten Zeit gelten würde und beendet danach das Prg. |
|
|
| |
|
|
|
Jörg Sellmeyer | Ich würde empfehlen, erstmal die simple Variante zu nehmen.
Stehen denn in Deinen Variablen auch die richtigen Werte? Ansonsten kannst Du in der Schleife auf %error testen und entsprechend handeln. Deine Beschreibung der Fehlermeldung ist immer noch nicht sehr aussagekräftig. Was ist der genaue Wortlaut? Läuft das Programm danach weiter? In welchem ErrorLevel (siehe Aiuto) befindest Du Dich.
Prinzipiell könntet Du das so abfangen: KompilierenMarkierenSeparieren |
|
|
|