AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Datum zusammenbasteln mit Platzhalter ?
Thema durchsuchen
Ansicht
Themen-Optionen

Datum zusammenbasteln mit Platzhalter ?

Ein Thema von moelski · begonnen am 10. Aug 2008 · letzter Beitrag vom 10. Aug 2008
Antwort Antwort
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Datum zusammenbasteln mit Platzhalter ?

  Alt 10. Aug 2008, 08:54
Moins !

In unserer Anwendung hats ne Zeitachse die in verschiedenen Varianten dargestellt werden kann also z.B. mm:ss oder hh:mm:ss oder dd:hh:mm oder oder ... Wir haben da so knapp 30 Presets aus denen man wählen kann.

Nun wäre es aber eigentlich viel schöner wenn man dem User die Möglichkeit geben würde, selbst sein Format zu definieren. So nach dem Motto "%Y.%M %MM:%SS" und das Ergebnis wäre dann "2008.08 50:57" (Macht keinen Sinn, is abba auch nur nun Beispiel).

Nun hat ich mir gedenkt das man das mittels Format ja lösen könnte. Aber da hatte ichmich zu früh gefreut denn Format hat ja seine definierten Platzhalter und keine selbst ausgedachten.

Läuft das nun wirklich auf einen kleinen Parser hinaus, der die Zeile "%Y.%M %MM:%SS" Stück für Stück analysiert und dann in einen passenden String umschreibt? Oder hat jemand evtl. eine einfachere Idee?
Es müsste nur recht universell sein, denn es sollte auch sowas gehen: "Du bist im Jahr %Y und es hat im Moment %HH Stunden ..".

Und jetzt wo ich das schreibe fällt mir gerade ein ... Sollte das nicht mit StringReplace machbar sein !?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Datum zusammenbasteln mit Platzhalter ?

  Alt 10. Aug 2008, 09:03
Hast du schon mal die Unit: "DateUtils" durchgestöbert ob da was für dich dabei ist???

Um eine Datumsausgabe nach eigenem ermessen zu formatieren, kannst du die Funktion "Hier im Forum suchenFormat" verwenden!
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Datum zusammenbasteln mit Platzhalter ?

  Alt 10. Aug 2008, 09:04
Ok ich beantworte es mir selber

Delphi-Quellcode:
var erg : String;
begin
  erg := Edit1.Text;
  {
%Y4  - Jahr (2008)
%Y2  - Jahr (08)
%M  - Monat (04)
%ML  - Monat (April)
%D  - Tag (28)
%h  - Stunden
%m  - Minuten
%s  - Sekunden
%ms  - Millisekunden
}

  erg := StringReplace(erg, '%Y4', FloatToStr(YearOf(Now)), [rfReplaceAll]);
  erg := StringReplace(erg, '%M', FloatToStr(MonthOf(Now)), [rfReplaceAll]);
  erg := StringReplace(erg, '%D', FloatToStr(DayOf(Now)), [rfReplaceAll]);
  erg := StringReplace(erg, '%h', FloatToStr(HourOf(Now)), [rfReplaceAll]);
  erg := StringReplace(erg, '%m', FloatToStr(MinuteOf(Now)), [rfReplaceAll]);
  erg := StringReplace(erg, '%s', FloatToStr(SecondOf(Now)), [rfReplaceAll]);
  erg := StringReplace(erg, '%ms', FloatToStr(MilliSecondOf(Now)), [rfReplaceAll]);
  Label1.Caption := erg
Das tut ...
Aber wenn jemand noch was schnelleres hat ... Is immer willkommen.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Datum zusammenbasteln mit Platzhalter ?

  Alt 10. Aug 2008, 09:06
Moin !

@lbccaleb : Ja die DateUtils kenne ich. Habe ja auch in meinem Beispiel was davon verwendet.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#5

Re: Datum zusammenbasteln mit Platzhalter ?

  Alt 10. Aug 2008, 09:07
HI,

das sollte alles über StringReplace machbar sein. Du solltest aber darauf achten, dass du im Eingangsstring alle FormateDateTime-Platzhalter in irgendwelche anderen Zeichenketten umwandelst um keine ungewünschten ergebnisse zu bekommen. Danach solltest du diese auch wieder zurückersetzen, sodass der User wieder seinen String zu sehen bekommt.

Bernhard

PS: Ich würde Delphi-Referenz durchsuchenFormatDateTime vorschlagen
EDIT: Mit deiner Variante gehts auch (... roter Kasten ...)
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Datum zusammenbasteln mit Platzhalter ?

  Alt 10. Aug 2008, 09:07
Wie schon geschrieben Format() oder hier FormatDateTime()
Markus Kinzler
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Datum zusammenbasteln mit Platzhalter ?

  Alt 10. Aug 2008, 09:10
FormatDateTime werde ich mir noch ansehen.

Danke für den Tipp !
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Datum zusammenbasteln mit Platzhalter ?

  Alt 10. Aug 2008, 09:12
Nachtrag ... Ach du meine Güte ...
FormatDateTime kann ja noch viel mehr als ich mir hätte wünschen können
http://www.delphibasics.co.uk/RTL.as...FormatDateTime

Das erfüllt alle meine Anforderungen.

Nochmals vielen Dank für den Hinweis !!

Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  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 12:32 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