![]() |
Zeit aus ini zurück
In welchem Format muss ich mir eine Zeit die ich über einen DateTimePicker in eine Ini gespeichert habe, zurückholen
Delphi-Quellcode:
Gruß Sascha
DateTimePicker1.Time:= readString(EinstellungenIni,Uhrzeit,'')// wie muss ich das beim lesen Formatieren
|
Re: Zeit aus ini zurück
Da TDateTime ja eigentlich Double ist, würde ich sie auch so abspeichern bzw. wieder auslesen.
|
Re: Zeit aus ini zurück
Ok mit dem Double funktioniert das Danke
Gibts da auch später keine Komplikationen, wenn ich das als Double speicher und dann eine Kommazahl in der Ini stehen habe. Nur mal so gefragt |
Re: Zeit aus ini zurück
Was du als Double reinschreibst, solltest du als Double auch wieder auslesen können. Probleme könnte nur das Dezimaltrennzeichen machen, welches von den Ländereinstellungen abhängig ist. Aber das ist eher ein generelles Problem.
|
Re: Zeit aus ini zurück
Wie speicherst Du denn? Hoffentlich mit Ini.WriteFloat, oder?
|
Re: Zeit aus ini zurück
Natürlich
Delphi-Quellcode:
WriteFloat(Einstellungen,Uhrzeit,DateTimePicker1.Time);
|
Re: Zeit aus ini zurück
Dann sehe ich außer den von Luckie angesprochenen keine weiteren Probleme.
|
Re: Zeit aus ini zurück
Delphi-Quellcode:
Ich mache es so, hat den Vorteil, dass es menschenlesbar ist.
function vDateToStr( const date: TDateTime): string;
begin DateTimeToString(result, 'yyyy.mm.dd hh:nn:ss', date); end; function vStrToDate( const s1: string): TDateTime; begin result:= encodeDateTime( strToIntDef(copy(s1, 1, 4), 0), strToIntDef(copy(s1, 6, 2), 0), strToIntDef(copy(s1, 9, 2), 0), strToIntDef(copy(s1, 12, 2), 0), strToIntDef(copy(s1, 15, 2), 0), strToIntDef(copy(s1, 18, 2), 0), 0); end; |
Re: Zeit aus ini zurück
Ok jetzt ist mir aufgefallen das ich das dann aber nicht vergleichen kann als string
Delphi-Quellcode:
wie mach ich das jetzt bekomme damit ne Zugriffsverletzung
Var sUhrzeit : String;
dUhrzeit : Float; UhrAktuell : String; UhrAktuell:= (FormatDateTime('HH:mm',now)); // natürlich im Timer sUhrzeit:= FloatToStr(dUhrzeit); if UhrAktuell = sUhrzeit then begin . . . end; |
Re: Zeit aus ini zurück
Was soll denn in dUhrzeit stehen?
|
Re: Zeit aus ini zurück
Damit Datum / Zeit in lesbarer Form in der ini stehen, kannst Du sie ja mit den DatumZuString-Konvertierungsfunktionen bearbeiten.
Beim Zurücklesen muss Du dann natürlich die dazu passende StringZuDatum-Konvertierungsfunktion verwenden. Einfach mal in der Delphi-Hilfe unter FormatDateTime oder StrToDate oder DateToStr oder den anderen Funktionen der Unit SysUtils vertraut machen. |
Re: Zeit aus ini zurück
So
Delphi-Quellcode:
procedure TForm2.DateTimePicker1Change(Sender: TObject);
begin Einstellungen:= ExtractFilePath(ParamStr(0))+ 'Einstellungen\Settings.ini'; begin with TMemIniFile.Create(Einstellungen) do try WriteFloat(EinstellungenINI,Uhrzeitloeschen,DateTimePicker1.Time); // Wert in die ini datei schreiben UpdateFile; finally Free; end; end; end; procedure TForm2.FormShow(Sender: TObject); Einstellungen:= ExtractFilePath(ParamStr(0))+ 'Einstellungen\Settings.ini'; begin with TMemIniFile.Create(Einstellungen) do try dUhrzeit:= ReadFloat(EinstellungenINI,Uhrzeitloeschen,0); DateTimePicker1.Time:= ReadFloat(EinstellungenINI,Uhrzeitloeschen,0); finally Free; end; end; end; |
Re: Zeit aus ini zurück
Hast Du vielleicht dUhrzeit einmal als globale und einmal als lokale Variable deklariert?
|
Re: Zeit aus ini zurück
Zitat:
Delphi-Quellcode:
hatte und es auch richtig in die ini geschrieben würde nur das lesen wie in meinem 1 Post hat mir da schwirigkeiten gemacht denn
TimeToStr
Delphi-Quellcode:
Gibts ja nicht und mit Date geht es auch nicht, weil es Time ist und nicht Date
StrToTime
|
Re: Zeit aus ini zurück
Zitat:
In dieser Unit gibt es jede Menge Konvertierungs-Funktionen? Übrigens gibt es ab Delphi 7 ein StrToTime und TimeToStr. |
Re: Zeit aus ini zurück
Und genau deshalb habe ich ja auch nachgefragt weil ich ja nichts gefunden habe und immernoch nichts finde.
|
Re: Zeit aus ini zurück
Um das mal abzukürzen worüber ihr Redet, guckt einfach nach oben zu meinem Post, da stehts fertig ;)
|
Re: Zeit aus ini zurück
Ich würde es eigentlich lieber gerne als String habe zum vergleichen ist das für mich einfacher
Einlesen tue ich das so (funzt wunderbar)
Delphi-Quellcode:
Auslesen würde ich gerne so aber geht so nicht
WriteString(EinstellungenIni,Uhrzeit,(TimeToStr(DateTimePicker1.Time)));
Delphi-Quellcode:
Das ist eigentlich alles was ich wissen möchte
DateTimePicker1.Time:= ReadString(EinstellungenIni,Uhrzeit,(StrToTime(0)));
|
Re: Zeit aus ini zurück
Na du konvertierst einen Datentyp in einen String beim schreiben.
Beim Lesen hast du was vergessen, oder? |
Re: Zeit aus ini zurück
Zitat:
Das geht so nämlich nicht. Ausserdem fehlt da (zumindest) ein StrToTime. |
Re: Zeit aus ini zurück
Mal ein Beispiel zur Konvertierung und Festlegung eines eigenen Formats:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s: string; sep: char; dt: TDateTime; begin //aktuelle Uhrzeit in einem String speichern s := FormatDateTime('HH#mm',now); //und ausgeben ShowMessage(s); //alten Timeseparator sichern sep := TimeSeparator; //und neu setzen TimeSeparator := '#'; //String in TTime konvertieren dt := StrToTime(s); //alten Timeseparator wiederherstellen TimeSeparator := sep; //und TTime formatiert ausgeben ShowMessage(FormatDateTime('HH:mm',dt)); end; Zitat:
Delphi-Quellcode:
DateTimePicker1.Time:= StrToTime(ReadString(EinstellungenIni,Uhrzeit,0));
|
Re: Zeit aus ini zurück
/klugscheiss
Ne ein TimeToStr fehlt, das StrToTime muss nur woanders hin :P |
Re: Zeit aus ini zurück
Zitat:
|
Re: Zeit aus ini zurück
Ich klinke mich aus.
Anscheinend will der Threadersteller nicht aus den bisherigen Antworten lernen. |
Re: Zeit aus ini zurück
Roterkasten
Also mal ganz ehrlich sag mir mal wo das in der Hilfe stehen soll, bezogen auf INI's aber habs ja jetzt
Delphi-Quellcode:
DateTimePicker1.Time:= StrToTime(readString(EinstellungenIni,Uhrzeit,''));
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz