Startseite ¦  was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews ¦  sonstiges
kylix ¦  tutorials ¦  online shop ¦  fotos ¦  Add&Win Gewinnspiel


Willkommen Gast. Bitte einloggen oder registrieren.
21.05.2012, 11:47:23
Übersicht Hilfe Suche Einloggen Registrieren

+  SwissDelphiCenter Forum
|-+  German Forums
| |-+  Einsteiger Forum
| | |-+  2 Fragen...
« vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: 2 Fragen...  (Gelesen 1497 mal)
Rage
Gast
« am: 10.07.2002, 15:40:17 »

ich hätte da wiedermal 2 fragen...

1.) wie kann man einen string , bei dem die ersten 4 zeichen für das jahr stehen, die nächsten 2 für den monat usw. ( bsp. für 10.07.2002 15:29:18: '20020710152918')  in den datentyp TDateTime umrechnen?

2.)

Code:

procedure test;



type

 Ttest = record

  date : TDateTime;

  filename : pchar;

  text : string;

end;



var

 x : array of Ttest;



begin

...

end;




ist es möglich, die einträge des arrays nach dem date-feld der records zu ordnen (also das record mit dem ältesten datum in x[0] ist und das mit dem 2. ältesten datum in x[1] usw.) ?

Rage
Gespeichert
AXMD
Sr. Member
****
Offline Offline

Beiträge: 385



WWW
« Antworten #1 am: 10.07.2002, 16:14:53 »

Hi,

@1: Parsen lautet das Zauberwort: zerlege den String in die Einzelteile (wie folgt): erste vier Zeichen des Strings in Variable JAHR speichern, dann die vier Zeichen löschen..........und so weiter... zu guter Letzt musst du dann nur noch mit EncodeDate die einzelnen Variablen verbinden:

meine_date_time_variable := EncodeDate(year,monat,tag) + EncodeTime(Stunde, minue, sekunde);

Alles soweit klar?

AXMD
Gespeichert

Lestat
Gast
« Antworten #2 am: 10.07.2002, 16:39:57 »

2: Stichwort "Bubblesort"
Gespeichert
Rainer
Hero Member
*****
Offline Offline

Beiträge: 1666


WWW
« Antworten #3 am: 10.07.2002, 16:49:36 »

Die TDateTime-Werte sind vom Type Double, d.h. ein Größenvergleich ist einfach möglich.

Sortierverfahren finden sich z.B. recht einfach erklärt unter
[a href="http://www.grundlagen.delphi-source.de/algorithmen/sortieren.shtml" target="_blank"]http://www.grundlagen.delphi-source.de/alg...sortieren.shtml[/a]
Gespeichert

MfG Rainer

end.
Rage
Gast
« Antworten #4 am: 10.07.2002, 17:05:45 »

also erstmal danke für eure antworten, aber ich muss da nochmal was fragen zu 2. ...

Zitat

Die TDateTime-Werte sind vom Type Double, d.h. ein Größenvergleich ist einfach möglich.

wie kann ich die dazugehörigen records ordnen?
ich habe doch nur ein array bestehend aus den records, und im jedem record gibt es jew. eine variable date nach der ich alle records ordnen möchte. das record mit dem ältesten date wert soll im array an 1. stelle stehen usw.
ich habe keine ahnung wie ich das anstellen soll...

hier nochmal der code:

Code:

procedure test;



type

Ttest = record

  date : TDateTime;

  filename : pchar;

  text : string;

end;



var

x : array of Ttest;



begin

...

end;

Gespeichert
Lestat
Gast
« Antworten #5 am: 10.07.2002, 22:05:05 »

Wie schon gesagt: Eine Möglichkeit zum Sortieren von Arrays ist der Bubblesort-Algorithmus. Ich hab das Beispiel von Rainer's Link etwas abgeändert, damit es für dein Array passt:

Code:

var

  tmp: Ttest;

  arr: array of Ttest;

  arrCount: LongInt;

  j: LongInt;

  i: LongInt;

begin

  // ...

  for i := 0 to arrCount - 1 do

  begin

    for j := 0 arrCount downto i do

    begin

      if arr[j].date < arr[j - 1].date then

      begin

        tmp := arr[j];

        arr[j] := arr[j - 1];

        arr[j - 1] := tmp;

      end;

    end;

  end;

end;



Das müsste funktionieren. Die Variable "arrCount" enthält dabei natürlich die Menge aller Elemente in dem Array.
Gespeichert
Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS