Autor Beitrag
Goaznic
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

Win XP, Win 7
Delphi 5, Delphi 10
BeitragVerfasst: Fr 07.10.11 09:18 
Ich habe ein Memo mit einer Formatierten Zeit.
Und ich habe einen neuen Wert, ebenfalls formatierte Zeit, in einem Edit.
Mein Ziel ist jetzt eigentlich folgendes:
ausblenden Delphi-Quelltext
1:
if 'Zeit aus Memo' - 'Zeit aus Edit' < 0 then					
Aber Memo und Edit sind ja String. Wie muss ich das umwandeln? StrToTime geht da ja auch nicht, weil's formatiert ist.
Also beide Zeiten sind aus FormatDateTime('nn:ss:zzz', Startzeit - Time) entstanden.


Moderiert von user profile iconNarses: Topic aus VCL (Visual Component Library) verschoben am Fr 07.10.2011 um 11:43
Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Fr 07.10.11 10:52 
Also ich kann Zeiten dieses Formats so miteinander verrechnen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.btnShowGapClick(Sender: TObject);
var
  Time1, Time2, GapTime : TDateTime;
begin
  try
    Time1 := StrToDateTime(edit1.Text);
    Time2 := StrToDateTime(edit2.Text);
    GapTime := Time1 - Time2;
    ShowMessage(TimeToStr(GapTime));
  except
    ShowMessage('Error');
  end;
end;


Oder wo liegt dein Problem?

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.

Für diesen Beitrag haben gedankt: Goaznic
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 07.10.11 10:52 
Moin!

user profile iconGoaznic hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe ein Memo mit einer Formatierten Zeit.
Und ich habe einen neuen Wert, ebenfalls formatierte Zeit, in einem Edit.
Mein Ziel ist jetzt eigentlich folgendes:
ausblenden Delphi-Quelltext
1:
if 'Zeit aus Memo' - 'Zeit aus Edit' < 0 then					
Aber Memo und Edit sind ja String.
Das hört sich doch nach dem klassischen Anfängerfehler an, visuelle Komponenten zur Datenhaltung zu missbrauchen. ;) Du solltest die Daten in internen Strukturen im entsprechenden Datenformat aufbewahren und nur zur Anzeige (für den Menschen) umwandeln. :idea:

user profile iconGoaznic hat folgendes geschrieben Zum zitierten Posting springen:
Wie muss ich das umwandeln?
Die einzelnen Elemente selbst parsen und dann damit wieder umwandeln:
DOH hat folgendes geschrieben:
function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;

Die Funktion gibt einen Wert des Typs TDateTime zurück, der einer bestimmten Stunde, Minute, Sekunde und Millisekunde entspricht.

Unit
SysUtils

Kategorie
Datum/Zeit

Delphi-Syntax:
ausblenden Delphi-Quelltext
1:
function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;					

Beschreibung
EncodeTime codiert die angegebenen Werte für Stunde, Minute, Sekunde und Millisekunde in einen Wert des Typs TDateTime.
Für Hour sind Werte von 0 bis 23 zulässig.
Die gültigen Werte für Min und Sec liegen zwischen 0 und 59.
Die gültigen Werte für MSec liegen zwischen 0 und 999.
Befinden sich die angegebenen Werte nicht innerhalb der Bereiche, wird eine EConvertError-Exception ausgelöst.
Der Rückgabewert ist eine Zahl zwischen 0 und 1 (inklusiv), die die angegebene Zeit in Nachkommastellen ausdrückt. Der Wert 0 entspricht Mitternacht, 0.5 ist Mittag, 0.75 ist 18:00 abends usw.
cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.

Für diesen Beitrag haben gedankt: Goaznic
Goaznic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

Win XP, Win 7
Delphi 5, Delphi 10
BeitragVerfasst: Fr 07.10.11 10:58 
Danke, das scheint die Lösung für mein Problem zu sein. :D
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Fr 07.10.11 11:07 
Aber warum soll er es denn erst "umkodieren" wenn er doch die Zeiten im Format nn:ss:zzz hat? Damit lässt sich doch prima rechnen, wie oben in meinem Beispiel.

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
Goaznic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

Win XP, Win 7
Delphi 5, Delphi 10
BeitragVerfasst: Fr 07.10.11 11:36 
Ich probier beides mal aus und gebe dann eine Rückmeldung! ;D

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Also zu Dude566s Idee: Wenn ich StrToDateTime mach, dann bekomme ich eine Meldung '00:05:412 ist keine gültige Datums- und Uhrzeitangabe' oder so ähnlich ...
Jetzt wende ich mich mal der Idee von Narses zu.^^
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Fr 07.10.11 17:28 
Wie sieht denn der string aus, den du damit in eine Zeit umwandelst?

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Fr 07.10.11 22:42 
'00:05:412' -> hh:mm:MMM ?

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
Goaznic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

Win XP, Win 7
Delphi 5, Delphi 10
BeitragVerfasst: Mo 10.10.11 11:40 
@platzwart: was meinst du mit
Zitat:
hh:mm:MMM
??? hh ist doch stunden, mm Minuten und MMM ... keine Ahnung. Aber ich hab Minuten, Sekunden und Millisekunden, also nn:ss:zzz

@Dude566: Also mein String sieht wie gesagt so aus: 00:05:412
:D