mit Datum rechnen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

RSBasic hat geschrieben:Siehe oben: http://www.purebasic.fr/german/viewtopi ... 409#245409
ich trottel... egal.

> ... 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
Benutzeravatar
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:

Beitrag von KeyKon »

Ich meinte auch mehr diese Zeile

Code: Alles auswählen

ParseDate("%dd.%mm.%yyyy %hh:%ii:%ss", $START_ZEIT) 
(\/) (°,,,°) (\/)
MrVain
Beiträge: 24
Registriert: 08.03.2009 14:34

Beitrag von MrVain »

Vielen Dank für eure Antworten.

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
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?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

schau dir mal RSet an...

allerdings bezweifle ich, dass du ein PureBasic-Programm auf DOS zum laufen kriegst...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
MrVain
Beiträge: 24
Registriert: 08.03.2009 14:34

Beitrag von MrVain »

Kaeru Gaman hat geschrieben:schau dir mal RSet an...

allerdings bezweifle ich, dass du ein PureBasic-Programm auf DOS zum laufen kriegst...
Das Programm läuft soweit unter DOS.

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
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

MrVain hat geschrieben:Das Programm läuft soweit unter DOS.
ich wette hundert sklaven dagegen! :mrgreen:
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Beitrag von Rebon »

Ich brauchte zufällig den gleichen Befehl:

Code: Alles auswählen

Dateiname2$ = Dname$ + "-" + BestellNr$ + "-ls-" + RSet(Str(GetGadgetState(13)), 4, "0") + ".doc"
MrVain
Beiträge: 24
Registriert: 08.03.2009 14:34

Beitrag von MrVain »

Kaeru Gaman hat geschrieben:
MrVain hat geschrieben:Das Programm läuft soweit unter DOS.
ich wette hundert sklaven dagegen! :mrgreen:
Ich habe eine Log-Datei mit folgendem Inhalt:

Code: Alles auswählen

[BANDSICHERUNG]
START = 20.05.2009 16:25:20,07 
ENDE = 22.05.2009 16:25:24,09 
Rufe mit einer Batch Datei mein Programm auf:

Code: Alles auswählen

dauer.exe sicherung.log BANDSICHERUNG
und erhalte in DOS mit

Code: Alles auswählen

echo %errorlevel%
den Wert in Sekunden.
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Beitrag von Rebon »

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"
Nachtrag:

Die 4 in dem RSetbefehl mit der Zeichenanzahl tauschen die du benötigst.
Antworten