Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Time wert in Longint umwandel (https://www.delphipraxis.net/47533-time-wert-longint-umwandel.html)

Alf 12. Jun 2005 18:12


Time wert in Longint umwandel
 
Hi Leute.

Das Umwandeln von Longint in ein FormatDateTime hab ich

Delphi-Quellcode:

Function TForm1.Zeit(rTime: LongInt):String;
var
   s: TTime;
begin
      s:= StrToTime(IntToStr(0)+':'+IntToStr(Trunc((rtime/1000)/60))+':'+
                            Inttostr(Trunc(rtime/1000 ) mod 60)+','+
                                   FloatToStr( rtime mod 1000));
       Result:=FormatDateTime('nn:ss:zzz',s);
end;
aber nun brauche ich es in umgekeherter Form ( string nach Longint)
und hab keine Ahnung!!!

den anfang habe ich, aber dann???? kein Denken mehr

Delphi-Quellcode:

Function TForm1.ZeitToInt(s: String): LongInt
var
   t: TTime;
begin
    t:=StrToTime(s);


end;
Ich Hoffe Ihr könnt mir helfen?


Gruss Alf

Phistev 12. Jun 2005 18:53

Re: Time wert in Longint umwandel
 
Vielleicht DecodeTime als Anfang?

alzaimar 12. Jun 2005 19:05

Re: Time wert in Longint umwandel
 
Und danach würde ich einige der folgenden Zeichen verwenden: 3,6,0,*, + , (, ). Die letzten beiden sind optional. Der Rest darf mehrfach (ohne Aufpreis!) verwendet werden.

Alf 12. Jun 2005 19:48

Re: Time wert in Longint umwandel
 
hi

mit DecodeTime hab ich s versucht und kamm nicht weiter, irgendwie ne Denklücke,
(min*60,sec*60,msec*1000) und dann alles addieren oder so,komm einfach nicht drauf

Zitat:

Und danach würde ich einige der folgenden Zeichen verwenden: 3,6,0,*, + , (, ).
kann ich leider nichts anfangen, zu weinig Info.

vielleicht ein bisschen mehr Info währe Hilfreich.

Gruss Alf

marabu 12. Jun 2005 20:38

Re: Time wert in Longint umwandel
 
Hallo Alf,

bei den Routinen TimeToStr() und StrToTime() kannst du noch deine speziellen Wünsche einbringen:

Delphi-Quellcode:
function MsecToStr(msec: cardinal): string;
var
  h, m, s: cardinal;
begin
  s := msec div 1000;
  msec := msec mod 1000;
  m := s div 60;
  s := s mod 60;
  h := m div 60;
  m := m mod 60;
  Result := TimeToStr(EncodeTime(h, m, s, msec));
end;

function StrToMsec(sTime: string): cardinal;
var
  h, m, s, msec: word;
begin
  DecodeTime(StrToTime(sTime), h, m, s, msec);
  Result := h * 60;
  Result := ((Result + m) * 60 + s) * 1000 + msec;
end;
Grüße vom marabu

Alf 12. Jun 2005 21:00

Re: Time wert in Longint umwandel
 
hi Marabu

Frage: Ist die (Function MsecToStr) in etwa die gleiche, wie ich sie in meiner (Function Zeit)
verwendet habe?

Mir geht es um der Übersichtlichkeit und der schnelleren Berechnung
weiss also nicht, ob meine Function sehr rechenintensiv ist z.B.
Deine Sieht irgendwie sauberer aus und dadurch vielleicht etws schneller?


Trotzdem Danke an alle für die schnelle Hilfe

Gruss Alf

marabu 13. Jun 2005 05:42

Re: Time wert in Longint umwandel
 
Hallo Alf,

ich habe nur versucht alles mit Integer-Arithmetik zu erledigen. Außerdem habe ich deine Formatbeschreibung weg gelassen. Die kannst du aber als Konstante FS_TIME = 'nn:ss,zzz' wieder reinbringen und mit TimeToStr(t, FS_TIME) und StrToTime(s, FS_TIME) verwenden. Genaueres dazu findest du in der Online Hilfe.

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz