Einzelnen Beitrag anzeigen

arest

Registriert seit: 27. Sep 2005
Ort: Frankfurt
62 Beiträge
 
Delphi 6 Personal
 
#8

Re: problem beim sortieren einer verketteten liste

  Alt 6. Aug 2009, 12:10
erst mal großes dankeschön an himitsu! die funktion so wie du sie umgeschrieben hast, funktioniert soweit, allerdings nur soweit wie meine bisher auch :/ sie ist deutlich übersichtlicher und das fehler finden ist dadurch sicherlich leichter radiobutton 1,2,5,6 sind in einer gruppe und 3,4 in einer anderen, wobei zu jeder zeit jeweils einer ausgewählt ist (vom formcreate an), d.h. daran kann es nicht liegen! weiterhin missachtet wird aufwärts/abwärts sortieren, sowie die sortierung nach geb/kategorie.... aus dem grund mal ne allgemeine frage dazu: wenn ich geburtstag als string reinsetzte, dann ist es klar, dass er nicht nach z.b. erst jahr, dann monat und dann tag sortiert, sondern einfach die zahlenwerte der reihe nach durchgeht. er müsste aber dennoch eigentlich zumindest in der hinsicht sortieren oder? d.h. ein geburtstag vom 21.03.1975 müsste dann einfach nach dem 13.03.1975 oder was auch immer gesetzt werden, da er einfach von vorne nach hinten den string durcharbeitet und 2 größer 1 ist, oder? warum zum geier reagiert er darauf also nicht? ich habe mit durchlauf per einzelanweisungen geprüft, ob die daten alle richtig eingelesen werden, was absolut der fall ist.... alles strings, alle gefüllt, keine fehler bis dahin! hier kurz die geforderte record methode...

Delphi-Quellcode:
type TDaten=record
   nachname,vorname,strasse,hausnummer,postleitzahl,wohnort,telefonhome,telefonhandy,telefonoffice,email,geburtstag,kategorie:string[50];
end;

type TKnoten=Class(TObject)
   Daten:TDaten;
   vorgaenger,nachfolger:TKnoten;
   Constructor Init;
end;

anschließend:
Delphi-Quellcode:
Constructor TKnoten.Init;
begin
   Daten.nachname:='';
   Daten.vorname:='';
   Daten.strasse:='';
   Daten.hausnummer:='';
   Daten.postleitzahl:='';
   Daten.wohnort:='';
   Daten.telefonhome:='';
   Daten.telefonhandy:='';
   Daten.telefonoffice:='';
   Daten.email:='';
   Daten.geburtstag:='';
   Daten.kategorie:='';
   vorgaenger:=NIL;
   nachfolger:=NIL;
end;

ins formcreate folgendes:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
   anfang:=TKnoten.Init;
   ende:=TKnoten.Init;
   anfang.nachfolger:=ende;
   ende.vorgaenger:=anfang;
   Radiobutton1.Checked:=true;
   Radiobutton3.Checked:=true;
   nachname:=true;
   vorname:=false;
   kategorie:=false;
   geburtstag:=false;
   richtung:=true;
end;

über eingabefelder werden die variablen gefüllt, wie bereits erwähnt problemfrei und anschließend über die sortieren funktion sortiert (habe jetzt die von himitsu drin). wo liegt die logik, dass nur vor/nachname funktionieren, obwohl keinerlei unterschiede in variablen/herangehensweise in der sortierfunktion vorliegen?! und warum reagiert die kacke auch in himitsu's version nicht auf auf/absteigend??
  Mit Zitat antworten Zitat