Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.418 Beiträge
 
Delphi 7 Professional
 
#21

AW: Software verhält sich auf Betriebssystemen unterschiedlich

  Alt 9. Mär 2018, 16:22
Die Frage verstehe ich nicht so ganz:

Heißt das, Du bekommst eine Uhrzeitangabe als Zeichenfolge, ohne dass Du weißt, wie sie konkret aufgebaut ist und muss daraus einen gültigen DateTime machen?

Ist die Zeitangabe denn zumindest immer in der Reihenfolge Stunde, Minute, Sekunde?

Dann könnte man zeichenweise von links nach rechts durch den String gehen und jedes Zeichen prüfen, ob's 'ne Ziffer ist. Die Stunden gehen bis vor die erste "Nichtziffer", dann folgen die Minuten bis zur nächsten "Nichtziffer", dann folgen die Sekunden bis zur nächsten "Nichtziffer" und alle Ziffern dahinter wären dann die Sekundenbruchteile.

Die so erhaltenen vier Zahlen kann man dann an EncodeTime übergeben. Hat man weniger als vier Zahlen, übergibt man für die entsprechenden Werte dem EncodeTime jeweils eine 0.

Damit kann man dann aus 12 EncodeTime(12,0,0,0) machen.
Aus 12:15 EncodeTime(12,15,0,0) ebenso aber auch aus 12/15 oder 12h15m.

Man könnte auch zuerst alle Nichtziffern durch ein Leerzeichen ersetzen, dann mehrfache Leerzeichen durch ein Leerzeichen. Danach dürfte man dann sowas alles übernehmen können:

12:00:00,0000
12/00/00.0000
12h00m00s
12h00m
12h
12
12h 00m 00s
12h 00m
12h
...

Ist halt ein bisserl "Zeichenfolgenbröselei" in 'ner Schleife.

Solange die Reihenfolge von Stunde, Minute, Sekunde und ggfls. Sekundenbruchteilen eingehalten wird, dürfte das übergebene Format in der Zeichenfiolge dann fast schon egal sein.
  Mit Zitat antworten Zitat