mit Datum rechnen
ich trottel... egal.RSBasic hat geschrieben:Siehe oben: http://www.purebasic.fr/german/viewtopi ... 409#245409
> ... ich denke mir nur, in die Help wird er schon geschaut haben, aber der Unterschied zwischen
Dann muss er nochmal genau schauen und die Parameter überprüfen.
Win11 x64 | PB 6.20
- KeyKon
- Beiträge: 1412
- Registriert: 10.09.2004 20:51
- Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit) - Wohnort: Ansbach
- Kontaktdaten:
Ich meinte auch mehr diese Zeile
Code: Alles auswählen
ParseDate("%dd.%mm.%yyyy %hh:%ii:%ss", $START_ZEIT)
(\/) (°,,,°) (\/)
Vielen Dank für eure Antworten.
Mein Code sieht nun so aus:
Das klappt auch alles einwandfrei. Da einzige Problem ist, dass die %time% Variable in DOS nachts nur einstellig ist.
Also 1 Uhr nachts bedeutet 1:00
PureBasic benötigt in diesem Falle jedoch eine 0 vor der 1. Wie mache ich dies am einfachsten?
Mein Code sieht nun so aus:
Code: Alles auswählen
Global INI_Datei$ = ProgramParameter()
Global PGroup$ = ProgramParameter()
Global START_ZEIT$
Global END_ZEIT$
Global ERGEBNIS$
Procedure Read_INI_Datei(iac)
; Lesen der Log-Datei
If OpenPreferences(INI_Datei$)
PreferenceGroup(Pgroup$)
START_ZEIT$ = ReadPreferenceString("START", "START")
END_ZEIT$ = ReadPreferenceString("ENDE", "ENDE")
Else
MessageRequester("Error", "Fehler beim Lesen der TXT-Datei ")
EndIf
EndProcedure
OpenConsole()
iac = 0
Read_INI_Datei(iac)
iac = 1
;PrintN("Start-Zeit: " + START_ZEIT$);
;PrintN("End-Zeit: " + END_ZEIT$);
START_ZEIT_FORMAT$ = Mid(START_ZEIT$,7,4) + Mid(START_ZEIT$,4,2) + Mid(START_ZEIT$,1,2) + Mid(START_ZEIT$,12,2) + Mid(START_ZEIT$,15,2) + Mid(START_ZEIT$,18,2)
END_ZEIT_FORMAT$ = Mid(END_ZEIT$,7,4) + Mid(END_ZEIT$,4,2) + Mid(END_ZEIT$,1,2) + Mid(END_ZEIT$,12,2) + Mid(END_ZEIT$,15,2) + Mid(END_ZEIT$,18,2)
start_zeit = ParseDate("%yyyy%mm%dd%hh%ii%ss", START_ZEIT_FORMAT$)
end_zeit = ParseDate("%yyyy%mm%dd%hh%ii%ss", END_ZEIT_FORMAT$)
zeit_sek = end_zeit - start_zeit
;Debug Date(START_ZEIT_FORMAT$)
;S2$ = ParseDate("%dd.%mm.%yyyy %hh:%ii:%ss", $START_ZEIT)
;PrintN("Zeit: " +Str(zeit_sek))
;Input()
End zeit_sek
Also 1 Uhr nachts bedeutet 1:00
PureBasic benötigt in diesem Falle jedoch eine 0 vor der 1. Wie mache ich dies am einfachsten?
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Das Programm läuft soweit unter DOS.Kaeru Gaman hat geschrieben:schau dir mal RSet an...
allerdings bezweifle ich, dass du ein PureBasic-Programm auf DOS zum laufen kriegst...
Es nimmt die Start und End Zeit und ermittelt die Dauer (Sekunden) und gibt diese als Errorlevel aus.
Ich schaue mir nachher mal RSet an - danke
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Ich brauchte zufällig den gleichen Befehl:
Code: Alles auswählen
Dateiname2$ = Dname$ + "-" + BestellNr$ + "-ls-" + RSet(Str(GetGadgetState(13)), 4, "0") + ".doc"
Ich habe eine Log-Datei mit folgendem Inhalt:Kaeru Gaman hat geschrieben:ich wette hundert sklaven dagegen!MrVain hat geschrieben:Das Programm läuft soweit unter DOS.
Code: Alles auswählen
[BANDSICHERUNG]
START = 20.05.2009 16:25:20,07
ENDE = 22.05.2009 16:25:24,09
Code: Alles auswählen
dauer.exe sicherung.log BANDSICHERUNG
Code: Alles auswählen
echo %errorlevel%
Nachtrag:Rebon hat geschrieben:Ich brauchte zufällig den gleichen Befehl:
Code: Alles auswählen
Dateiname2$ = Dname$ + "-" + BestellNr$ + "-ls-" + RSet(Str(GetGadgetState(13)), 4, "0") + ".doc"
Die 4 in dem RSetbefehl mit der Zeichenanzahl tauschen die du benötigst.