AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi aus Ini datei ein Datum und eine Zeit auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

aus Ini datei ein Datum und eine Zeit auslesen

Offene Frage von "kingsusu"
Ein Thema von kingsusu · begonnen am 26. Dez 2009 · letzter Beitrag vom 28. Dez 2009
Antwort Antwort
Seite 1 von 3  1 23      
kingsusu

Registriert seit: 9. Nov 2009
35 Beiträge
 
RAD-Studio 2009 Pro
 
#1

aus Ini datei ein Datum und eine Zeit auslesen

  Alt 26. Dez 2009, 20:03
Guten Abend Leute.

Nach einer Zeit des Versuchs wende ich mich wieder an euch.

Ich habe jetzt eine Überschrift (EdUber), eine Beschreibung (Edmem), eine Zeit die ich mit Timepicker erstllt habe (pickerzeit.time) und ein Datum dass ich auch mit datepicker erstellt hab (pickerdatum.date)

also so:
Delphi-Quellcode:
WriteToIni (Filename,'Myvars','Überschrift',eduber.Text);
WriteToIni (Filename,'Myvars','Beschreibung',edmem.Text);
WriteToIni (Filename,'Myvars','Zeit',TimeToStr(pickerzeit.Time));
WriteToIni (Filename,'Myvars','Datum',DateToStr(pickerdatum.date));


Wenn ich jetzt zum TTimer sagen will:

Wenn die Das Datum und die Zeit in der ini-datei mit (NOW) - also JETZT - übereinstimmen, dann Mach GERÄUSCH und zeige mir ein Hinweisfenster mit der Überschrift und der Beschreibung.



Bisher habe ich das geschafft

Delphi-Quellcode:

If (TimeToStr(now) = TImeToStr(pickerzeit.Time)) and (DateToStr(now) = DateToStr(pickerdatum.Date) )
then showmessage ('Aufwachen') ;
Aber wie mache ich es, dass er die Daten in der Ini-Datei abfragt und dort als Hinweisfenster die Überschrift und die dazugehörige Beschreibung nimmt?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: aus Ini datei ein Datum und eine Zeit auslesen

  Alt 26. Dez 2009, 20:28
Hallo,

du kannst TDateTime-Werte direkt miteinander vergleichen ohne sie davor in einen String umzuwandeln.

Wie man aus einer Ini-Datei liest, ist dir geläufig. Das Anzeigen kannst du mit "Application.MessageBox()" machen (Tutorial).

Grüße, Matze
  Mit Zitat antworten Zitat
kingsusu

Registriert seit: 9. Nov 2009
35 Beiträge
 
RAD-Studio 2009 Pro
 
#3

Re: aus Ini datei ein Datum und eine Zeit auslesen

  Alt 27. Dez 2009, 11:56
Zitat von Matze:
Hallo,

du kannst TDateTime-Werte direkt miteinander vergleichen ohne sie davor in einen String umzuwandeln.
Wie meinst du das? Ich vergleiche ja nicht zwei TDateTime werte miteinander, sondern jeweils das Datum und NOW und dann die Zeit und NOW.

Was ist falsch daran, wenn ich diese in einen String umwandel?
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#4

Re: aus Ini datei ein Datum und eine Zeit auslesen

  Alt 27. Dez 2009, 12:43
Es ist nichts falsch daran. Aber so geht es auch:
if Pickerdatum.date+Pickerzeit.time=now then ...
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#5

Re: aus Ini datei ein Datum und eine Zeit auslesen

  Alt 27. Dez 2009, 12:48
Hi,

beides ist nicht optimal.
Die Umwandlung von tDateTime in einen String verhindert an dieser Stelle Rundungsprobleme, dennoch muss die Prüfung zur genau richtigen Sekunde erfolgen. Sollte das Programm noch andere Dinge tun, könnte das auch schonmal evtl. ne Sekunde später sein.... und dann ?

Ich würde auf einen Bereich von z.B. 10 Sekunden oder einer Minute testen. Und in dem Fall eignet sich dann der direkte tDateTime Datentyp besser.

Gruss

[Edit]
Oder geht es erst mal darum, die Werte wieder aus der Ini-Datei zu lesen ?
Soll eventuell mehr als eine "Weckzeit" überprüft werden ?
[/Edit]
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
kingsusu

Registriert seit: 9. Nov 2009
35 Beiträge
 
RAD-Studio 2009 Pro
 
#6

Re: aus Ini datei ein Datum und eine Zeit auslesen

  Alt 27. Dez 2009, 12:59
Es kann ruhig einige Sekunden verspätet auftreten! Das ist absolut kein Problem. Ich bleibe lieber bei den Strings, weil ich dort verstehe was vor sich ging.

Zitat von thkerkmann:

Oder geht es erst mal darum, die Werte wieder aus der Ini-Datei zu lesen ?
Soll eventuell mehr als eine "Weckzeit" überprüft werden ?
Genau! Das will ich.


Mit der Messagebox habe ich es versucht.

Aber es zeigt mir Fehler bei diesem Befehl:

Delphi-Quellcode:

If (TimeToStr(now) = TImeToStr(pickerzeit.Time)) and (DateToStr(now) = DateToStr(pickerdatum.Date) )
then
Messagebox(Self.Handle, readfromini(filename, 'Myvars', 'Beschreibung'), readfromini (filename, 'Myvars', 'Überschrift'), MB_ICONWARNING or MB_OK);
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: aus Ini datei ein Datum und eine Zeit auslesen

  Alt 27. Dez 2009, 13:04
Ich würde nicht auf gleich prüfen, auch nicht auf eine Toleranz sondern prüfen ob das Datum/Zeit in der Ini kleiner als das aktuelle ist und kleiner dem des letzten auslösens. Den Zeitpunkt des letzten Auslösens musst du nicht mitspeichern sondern kannst es bei Programmstart auf now setzen.

Der Zeitanteil von TDateTime (Now) ist übrigens der Nachkommaanteil. Diesen solltest du mit Floor ermitteln können. Der Datumsteil eines TDateTime ist der Teil vor dem Komma und kann mit Trunc ermittelt werden.
Delphi-Quellcode:
gesamt := now();
zeit := floor(gesamt);
datum := trunc(gesamt);
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#8

Re: aus Ini datei ein Datum und eine Zeit auslesen

  Alt 27. Dez 2009, 13:06
Zitat von SirThornberry:
Der Zeitanteil von TDateTime (Now) ist übrigens der Nachkommaanteil. Diesen solltest du mit Floor ermitteln können. Der Datumsteil eines TDateTime ist der Teil vor dem Komma und kann mit Trunc ermittelt werden.
Floor() rundet ab. Bei positiven Zahlen kommt also das gleiche raus wie bei Trunc().
Ich schätze du meintest Frac() ;-D
  Mit Zitat antworten Zitat
kingsusu

Registriert seit: 9. Nov 2009
35 Beiträge
 
RAD-Studio 2009 Pro
 
#9

Re: aus Ini datei ein Datum und eine Zeit auslesen

  Alt 27. Dez 2009, 13:17
Zitat von SirThornberry:
Ich würde nicht auf gleich prüfen, auch nicht auf eine Toleranz sondern prüfen ob das Datum/Zeit in der Ini kleiner als das aktuelle ist und kleiner dem des letzten auslösens. Den Zeitpunkt des letzten Auslösens musst du nicht mitspeichern sondern kannst es bei Programmstart auf now setzen.
- ohje, ich will das nicht unnötig kompliziert machen .

Aber ich denke, dass es nach meiner Methode auch klappt.

Wenn ich die "Überschrift" des Nachrichtenfensters von der Ini-Datei ablese und auch die dazugehörige "Beschreibung" und diese dann als Messagebox ausgeben kann (vielleicht noch später einen Weckersound hinzu oder sowas ) dann wäre 50% der Arbeit erledigt.

Die anderen 50% wären dann nur noch zu schauen ob die Zeit und das Datum einer (welche ich mit DateTimePicker erstellt habe und auch in die Ini-datei gespeichert hab ) mit NOW übereinstimmen. Wenn ja soll dann meine Messagebox mit dem Sound aktiviert werden.
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#10

Re: aus Ini datei ein Datum und eine Zeit auslesen

  Alt 27. Dez 2009, 13:20
Zitat von kingsusu:
- ohje, ich will das nicht unnötig kompliziert machen .
Das ist nicht kompliziert.
if Now >= Datumpicker.date + Zeitpicker.time then ...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 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