AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Double und TDateTime 'delokalisiert' speichern

Double und TDateTime 'delokalisiert' speichern

Ein Thema von weltaran · begonnen am 3. Mai 2005 · letzter Beitrag vom 9. Mai 2005
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von weltaran
weltaran

Registriert seit: 12. Sep 2003
Ort: Offenburg
78 Beiträge
 
Delphi 5 Enterprise
 
#1

Double und TDateTime 'delokalisiert' speichern

  Alt 3. Mai 2005, 17:19
Hallo Leute!

Ich möchte in meinem (XML-)File Zeitstempel (TDateTime) und double-Werte speichern, und zwar ohne länderabhängige Formatierungen. Mit StrToDateTime und DateTimeToStr ist dies noch möglich, allerdings ohne Milisekunden, was mich stört. Bei FloatToStrF gibt es kein entsprechendes Pendant zum zurückholen und jedesmal DecimalSeparator zu überschreiben (in der GUI möchte ich latürnich lokalisierte Ausgaben machen) finde ich irgendwie unprofessionell.

Geht das auch irgendwie 'generischer' und sauberer?

Ciao
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Double und TDateTime 'delokalisiert' speichern

  Alt 3. Mai 2005, 17:24
ISO-Zeitformat ist 'ne Möglichkeit: YYYY-MM-DD hh:nn:ss
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Double und TDateTime 'delokalisiert' speichern

  Alt 3. Mai 2005, 17:25
Zitat:
Ich möchte in meinem (XML-)File Zeitstempel (TDateTime) und double-Werte speichern, und zwar ohne länderabhängige Formatierungen.
Gib doch mal ein Beispiel, wie der XML-Code aussehen soll?
  Mit Zitat antworten Zitat
Ferber

Registriert seit: 9. Mär 2005
Ort: Wien Umgebung
155 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Double und TDateTime 'delokalisiert' speichern

  Alt 3. Mai 2005, 17:28
Hi !

Delphi-Quellcode:

function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;

{ DecodeDate decodes the integral (date) part of the given TDateTime value
  into its corresponding year, month, and day. If the given TDateTime value
  is less than or equal to zero, the year, month, and day return parameters
  are all set to zero. }


procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);

{ DateTimeToSystemTime converts a date and time from Delphi's TDateTime
  format into the Win32 API's TSystemTime format. }
Könnte das helfen
Otto
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Double und TDateTime 'delokalisiert' speichern

  Alt 3. Mai 2005, 18:14
Kuck mal da:
http://www.hackcraft.net/web/datetime/#xsd
oder hier wäre die orginale, offizielle Quelle:
http://www.w3.org/TR/xmlschema-2/
demnach
Delphi-Quellcode:
function XMLDatetime(d:TDateTime):string;
begin
   result := FormatDateTime('yyyy"-"mm"-"dd"T"hh":"nn":"ss', d);
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von weltaran
weltaran

Registriert seit: 12. Sep 2003
Ort: Offenburg
78 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: Double und TDateTime 'delokalisiert' speichern

  Alt 4. Mai 2005, 14:06
OK, Und wie bekomm ich das wieder zurück in ein TDateTime? Das ist ja mein Problem: ich brauche so etwas wie 'sscanf' unter Delphi.

Ciao
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Double und TDateTime 'delokalisiert' speichern

  Alt 4. Mai 2005, 14:28
Zitat von weltaran:
OK, Und wie bekomm ich das wieder zurück in ein TDateTime? Das ist ja mein Problem: ich brauche so etwas wie 'sscanf' unter Delphi.
Ungefähr so?

Delphi-Quellcode:
function XMLStrToDate(adatum:string):Tdatetime;
var
  year,month,day,h,m,s:word;
begin

 // yyyy"-"mm"-"dd"T"hh":"nn":"ss
  year:=strtoint(copy(adatum,1,4));
  month:=strtoint(copy(adatum,6,2));
  day:=strtoint(copy(adatum,9,2));
  result:=encodedate(year,month,day);
 
  h:=strtoint(copy(adatum,12,2));
  m:=strtoint(copy(adatum,15,2));
  s:=strtoint(copy(adatum,18,2));
  Result:=Result+encodeTime(h,m,s,0);
 
end;
  Mit Zitat antworten Zitat
Benutzerbild von weltaran
weltaran

Registriert seit: 12. Sep 2003
Ort: Offenburg
78 Beiträge
 
Delphi 5 Enterprise
 
#8

Re: Double und TDateTime 'delokalisiert' speichern

  Alt 4. Mai 2005, 14:42
Hi!

Ja, genau so! Vielen Dank. 'copy' war mir gänzlich unbekannt.

Ciao
  Mit Zitat antworten Zitat
Benutzerbild von weltaran
weltaran

Registriert seit: 12. Sep 2003
Ort: Offenburg
78 Beiträge
 
Delphi 5 Enterprise
 
#9

Re: Double und TDateTime 'delokalisiert' speichern

  Alt 9. Mai 2005, 17:21
Jetzt hab' ich immer noch das Problem mit den double-Werten. Diese müssen auch 'delokalisiert' gespeichert UND wieder eingelesen werden. Wie komm ich denn an den Nachkommaanteil der Zahl? Der ganzzahlige Anteil ist mit Round und Ceil/Floor zu bekommen.

Ciao
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Double und TDateTime 'delokalisiert' speichern

  Alt 9. Mai 2005, 17:42
Such mal nach "frac"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:17 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