Autor Beitrag
chris_davidi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76

Windows 98 SE
Delphi 3
BeitragVerfasst: Do 11.09.03 14:19 
Hallo...

Mich würde interessieren, wie das funktioniert. Ich würde gerne das Datum auslesen lassen und in ein RichEdit- Feld schreiben lassen. ist ja relativ einfach... Brauche aber nur das ja und die beiden Endstellen (also statts 2003 nur 03). Wie funktioniert das? Habe gehört man muss das Datum als String festlegen und dann zerlegen, so wie man es haben will.

Habe davon leider keine Ahnung und würde mich freuen, wenn dies jemand machen und auch erklären könnte an diesem Beispiel, damit ich das lerne...

Vielen Dank im Vorraus
Gruss
Chris
Hansi@OMG
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 304

Vista
Delphi 2006 Prof., Lazarus
BeitragVerfasst: Do 11.09.03 14:36 
Ich hab dir jetzt mal ein einfaches Beispiel mit einer Funktion geschrieben, damit du jedesmal, wenn du das auslesen willst, nicht soviel tippen musst:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
function jahreszahl(Datum:String):String;
var i : integer;
begin
i := pos('200',Datum);    \\Sucht nach dem Jahr 200...
result:=copy(Datum,i+2,11); \\Kopiert von dem String nur die letzten zwei jahreszahlen
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
label1.caption:=DateToStr(now); \\ Gibt dir das aktuelle Datum als String
label2.Caption:=jahreszahl(label1.Caption); \\ Gibt dir das was du willst
end;

_________________
Who doesn't know the Micrsoft developer "Mahatma Fatal Error"?
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Do 11.09.03 14:36 
Es geht auch so ohne String-Umwandlung:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var
  d: TDateTime;
  Day, Month, Year: Word;
begin
  d := Date; // aktuelles Datum
  DecodeDate(d, Year, Month, Day);

  Year := Year mod 100// auf 00-99 kürzen
  if Year < 10 then
    Result := '0' + IntToStr(Year)
  else
    Result := IntToStr(Year);
end;



Zitat:
i := pos('200',Datum); \\Sucht nach dem Jahr 200...
result:=copy(Datum,i+2,11); \\Kopiert von dem String nur die letzten zwei jahreszahlen

Und was ist, wenn jemand das Datumsformat yyyy-mm-dd eingestellt hat? Oder das Programm auch noch 2010 funktionieren soll?

_________________
Ist Zeit wirklich Geld?
chris_davidi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76

Windows 98 SE
Delphi 3
BeitragVerfasst: Di 16.09.03 11:55 
Leider funktionieren beiden Codes bei mir nicht. Probiert es mal bei euch...

Ja, stimmt. Wenn der Benutzer ein anderes Datumsformat eingestellt hat, soll trotzdem nur vom Jahr die letzen beiden Ziffern angezeigt werden.

Habe jedoch keine Ahnung wie das in Delphi geht, ich bekomme immer nur Fehler, wenn ich an den Codes von euch rumprobiere. Hoffe mir kann jemand helfen.
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Di 16.09.03 12:41 
Zitat:

Habe jedoch keine Ahnung wie das in Delphi geht, ich bekomme immer nur Fehler, wenn ich an den Codes von euch rumprobiere. Hoffe mir kann jemand helfen.

wie soll man dir denn helfen, wenn du nich sagst, welche Fehlermeldungen du bekommst?

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
chris_davidi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76

Windows 98 SE
Delphi 3
BeitragVerfasst: Di 16.09.03 12:53 
Baue am Besten mal den Code bei dir ein, dass ist besser als den Fehler zu nennen.

Ein Fehler bei dem Code von Hansi zum Beispiel war, das result nicht definiert ist. Dann habe ich es definiert und dann kam wieder ein Fehler... Wäre wirklich besser, wenn ihr es selber anschaut, ist besser, als den Fehler erklärt zu bekommen, finde ich.
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Di 16.09.03 13:56 
chris_davidi hat folgendes geschrieben:
Baue am Besten mal den Code bei dir ein, dass ist besser als den Fehler zu nennen.

Ein Fehler bei dem Code von Hansi zum Beispiel war, das result nicht definiert ist. Dann habe ich es definiert und dann kam wieder ein Fehler... Wäre wirklich besser, wenn ihr es selber anschaut, ist besser, als den Fehler erklärt zu bekommen, finde ich.

Du weißt den Aufbau von Funktionen und Proceduren?
Hansi´bsp läßt sich kompilieren (hat nur \\ mit // verwechselt)
bei Andy fehlt nur der funktionskopf
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Funktion Jahreszahl:string;  //oder wie du deine Funktion nennen willst
var 
  d: TDateTime; 
  Day, Month, Year: Word; 
begin 
...


Aufruf:
ausblenden Delphi-Quelltext
1:
2:
  ...
  label1.caption:=Jahreszahl;

geht sehr wohl, aber du mußt halt auch noch n bissel selber nachdenken
Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Wolff68
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 302
Erhaltene Danke: 1

WinXP home
D6 Prof
BeitragVerfasst: Mi 17.09.03 20:49 
Oder probiers einfach damit:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text := FormatDateTime('YY',Now);
end;

[Hilfe : "Datum und Uhrzeit"]

_________________
"Der Mensch ist nicht was er sich vorstellt oder wünscht zu sein, sondern das was andere in ihm sehen."