Entwickler-Ecke

Sonstiges - ...Zeitwerte aus String extrahieren und berechnen


Lannes - Fr 30.06.06 00:00
Titel: ...Zeitwerte aus String extrahieren und berechnen
Zeitwerte aus String extrahieren und berechnen


Die Funktion extrahiert alle Zeitangaben die mit einem nachfolgenden Zeit-Kennzeichen(h,m,s,z) versehen sind, aus einem String.
Die extrahierten Werte werden in die Einheit Sekunden umgerechnet und summiert.
z.B.
'Zeitmessung ergab: 4h,48m,23s und 145z' = 17303,145

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
function StringToSec(sTime: String): extended;
var sInt : String;
    z : Integer;
begin
  Result := 0;
  for z := 1 to Length(sTime) do
    if sTime[z] in ['0'..'9'then
     sInt := sInt+sTime[z]
     else
       begin
       if sInt <> '' then
         case sTime[z] of
           'h' : Result := StrToInt(sInt)*3600;
           'm' : Result := Result+StrToInt(sInt)*60;
           's' : Result := Result+StrToInt(sInt);
           'z' : Result := Result+StrToInt(sInt)/1000;//Millisekunden
         end;
       sInt := '';
       end;
end;


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var sec : Extended;
//...
  sec := StringToSec('Vorbereitung: 2h 11s, Nachbearbeitung: 48m 23s');
//...oder auch einen Memoinhalt
  sec := StringToSec(Memo.Text);
  showmessage('Summe: '+FloatToStr(sec)+' Sekunden.');

'Länge 67mm Zeit 2m 26s' = 4166
denn '67m' wird als Minutenangabe gewertet.