Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Schon wieder -String zerlegen- ...
MettMaX - Do 29.06.06 17:49
Titel: Schon wieder -String zerlegen- ...
Hallo,
momentan befinde ich mich in einem abgestumpften Zustand geistiger Umnachtung in dem ich nur noch den unsaubersten Müll programmiere....
Ich habe jetzt länger an einem Programm gearbeitet. In einer Funktion dieses Programmes soll ein String wie zb: 40h 48m 23s oder auch
4h 8m 2s in die Variabeln
-stunden
-minuten
-sekunden
umgeschrieben werden.
Ich weiß dass es Funktionen wie explode, pos, copy usw gibt. Doch damit hab ich es nie geschafft, weil das Trennzeichen halt nicht immer dasselbe ist.
Deswegen habe ich das ganze sehr unschön mit einer for- mit vielen verschachtelten if-Schleifen probiert, das hat geklappt, bis mein Delphi sich mit einer mysteriösen Fehlermeldung verabschiedet hat und ich natürlich nichts gespeichert hatte.
Jetzt habe ich daran gedacht einfach das "h" "m" "s" in meinem String durch ";" zu replacen und dann explode zu verwenden.
Aber ich weiß, dass ich in diesem Zustand in dem ich mich gerade befinde nur noch Bruch produziere, durch den ich 2 Tage später nicht mehr durchblicke. Deswegen will ichs ordentlich haben.
Klingt jetzt wie eine Aufforderung "macht mal", solls aber nicht sein, aber vllt habt ihr ja einen passenden Codeschnipsel rumliegen oder einfach leichtere Ideen.
Grüße
Max
der Berliner - Do 29.06.06 18:09
Hallo
wenn ich dich richtig verstanden habe könntest du das hier mal probieren:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Button1Click(Sender: TObject); Var Zeit:String ; CodeZeit:TDateTime; Std,min,sek,msec:Word; begin Zeit:='8:4:2'; CodeZeit:=StrToTime(Zeit); Decodetime(CodeZeit,Std,min,sek,msec); ShowMessage(IntTostr(Std)); end; |
Gruß
MettMaX - Do 29.06.06 20:18
Hallo
Danke erstmal, an sowas hatte ich jetzt zwar eigentlich nicht gedacht, aaaaaber, ich konnte es für meine Zwecke gut umfunktionieren!
So, jetzt hab ich ein neues Problem ;)
ich möchte die Zeit die ich mit deinem Code erzeugt habe, in Sekunden umrechnen.
Delphi-Quelltext
1:
| gesamt := (StrToInt(TimeToStr(Std)) * 3600) + (StrToInt(TimeToStr(min)) * 60) + StrToInt(TimeToStr(sek)); |
Verursacht einen Fehler [...]class EConvertError with message "00:00:00" is not a valid integer value[...] ... da hat er sogar recht :?
Gruß
Max
root_at_localhost - Do 29.06.06 20:28
sind nicht Std, Min, etc. schon als Integertypen definiert? Dann kannst du dir nämlich das (StrToInt(TimeToStr(Std)) usw. schenken und einfach nur
Delphi-Quelltext
1:
| gesamt := (Std * 3600) + (min * 60) + sek; |
schreiben...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!