AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TDate/TDateTime in Filestream speichern

Ein Thema von Antigo · begonnen am 30. Jan 2007 · letzter Beitrag vom 31. Jan 2007
Antwort Antwort
Antigo

Registriert seit: 14. Mär 2005
274 Beiträge
 
#1

TDate/TDateTime in Filestream speichern

  Alt 30. Jan 2007, 20:56
Hi,
ich möchte die Datumsangaben in 2 Datepickern in eine Datei speichern. Einmal ein Datum, einmal eine Uhrzeit. Nur wie geht das?

Wenn ich versuche das wie einen String, einen Integer Wert oder eine Boolean Variable zu speichern, sagt er mir es wäre eine Variable erforderlich. Irgendwo hier im Forum hab ich dann gesehen, dass es jemand als String gespeichert hat. Also hab ich versucht es per DateToStr bzw. DateTimeToStr zu speichern. Aber beim einlesen bekomme ich dann einen Error bei StrToDate.

Jemand eine Idee?

Danke schonmal
Michael
"How should I know if it works? That's what beta testers are for. I only coded it."
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: TDate/TDateTime in Filestream speichern

  Alt 30. Jan 2007, 23:03
Moin Michael,

Zitat von Antigo:
Aber beim einlesen bekomme ich dann einen Error bei StrToDate.

Jemand eine Idee?
Ja.
  • Du machst beim Schreiben der Daten etwas falsch.
  • Du machst beim Lesen der Daten etwas falsch.
  • Beides.



Zeig' uns doch mal, wie Du die Daten schreibst/liest.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#3

Re: TDate/TDateTime in Filestream speichern

  Alt 31. Jan 2007, 07:16
Hi,

wenn eine Variable erforderlich ist, dann benutz doch eine Variable
Delphi-Quellcode:
var
  F : TFileStream;
  myDate : TDateTime;
begin
  F := TFileStream.Create('C:\test.dat',fmCreate);
  myDate := DateTimePicker1.Date;
  F.Write(myDate, SizeOf(myDate));
  F.Free;
end;
PS: Warum als Integer speichern? Benutz doch den richtigen Datentyp TDateTime (=Double)

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Antigo

Registriert seit: 14. Mär 2005
274 Beiträge
 
#4

Re: TDate/TDateTime in Filestream speichern

  Alt 31. Jan 2007, 14:34
danke für die Antowrten, ich habs jetzt so probiert:

Schreiben
Delphi-Quellcode:
var
  date:TDate;
  time:TDateTime;
begin
  ...
  ...
  //Alarm////
  //Alarm ein?
  Stream.Write(Notizen[i].chkAlarm, SizeOf(Notizen[i].chkAlarm));
  //Sound ein?
  Stream.Write(Notizen[i].chkAlarmSound, SizeOf(Notizen[i].chkAlarmSound));
  //Date1
  date:=Notizen[i].DateTimePicker1.date;
  Stream.Write(date, SizeOf(date));
  //Date2 Uhrzeit
  time:=Notizen[i].DateTimePicker2.Time;
  Stream.Write(time, SizeOf(time));
  ...
end;
soweit alles ok
Lesen:
Delphi-Quellcode:
var
  date:TDate;
  time:TDateTime;
begin
  ...
  ...
  //Alarm////
  //Alarm ein?
  Stream.Read(bool, SizeOf(bool));
  Notizen[i].chkAlarm.Checked:=bool;
  //Sound ein?
  Stream.Read(bool, SizeOf(bool));
  Notizen[i].chkAlarmSound.Checked:=bool;
  //Date1
  Stream.read(date, SizeOf(date));
  Notizen[i].DateTimePicker1.date:=date;
  //Date2 Uhrzeit
  beep; //<<-- hier wird der Fehler Ungültige Gleitkommaoperation angezeigt. Gemeint ist wohl der vorherige Befehl
  Stream.read(time, SizeOf(time));
  Notizen[i].DateTimePicker2.Time:=time;
  ...
end;
Jo und beim Lesen bekomme ich eine Ungültige Gleitkomma Operation. Warum auch immer -_-

Ich bitte um Hilfe
Michael
"How should I know if it works? That's what beta testers are for. I only coded it."
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: TDate/TDateTime in Filestream speichern

  Alt 31. Jan 2007, 14:38
Du speicherst chkAlarm, was eine Komponente ist und liest nur die Property .Checked. Kurz: Du solltest auch die nur .Chekced speichern.
Warum nimmst du keine Ini-Files daher? Die sind für so etwas ausgelegt und wesentlich einfacher zu bedienen!
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Antigo

Registriert seit: 14. Mär 2005
274 Beiträge
 
#6

Re: TDate/TDateTime in Filestream speichern

  Alt 31. Jan 2007, 14:45
Zitat von inherited:
Du speicherst chkAlarm, was eine Komponente ist und liest nur die Property .Checked. Kurz: Du solltest auch die nur .Chekced speichern.
Warum nimmst du keine Ini-Files daher? Die sind für so etwas ausgelegt und wesentlich einfacher zu bedienen!
Super, das wars schon
Eigentlich wollte ich auch nur die Eigenschaft .checked speichern, habs entweder vergessen oder mich verschrieben. Naja jetzt funktionierts jedenfalls, auch wenn ich wieder eine Zwischenvariable benutzen musste.

Ini Files wären perfekt dafür, ich hatte nur keine Lust mein Programm durch die 32kb Grenze einzuschränken.

vielen dank auf jeden Fall
Michael
"How should I know if it works? That's what beta testers are for. I only coded it."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#7

Re: TDate/TDateTime in Filestream speichern

  Alt 31. Jan 2007, 15:00
war das nicht eine 64KB-Grenze (und die "nur" under Win9X/ME)?

und 64KB sind schon recht viel sollten eigentlich (in den meisten Fällen) ausreichend sein.

Das mit der Zwischenvariable:
tja, leider ist das ja ein Property und dort kann man nur Lesen und schreiben, also kann man es zum Auslesen nicht an einen Var-Parameter übergeben.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:46 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