Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - String und Datum sortieren
malibu85 - So 14.09.08 09:36
Titel: String und Datum sortieren
Hallo Freunde!
Ich habe eine Aufgabe bekommen im Fach Datenstrukturen undAlgorithmen. Wir haben angefangen uns mit Sortieralgorithmen zu beschäftigen. In einer Aufgabe heißt es, dass ein Datensatz auf verschiedenster weise sortiert werden soll. Zum einen nach dem "key" (integer kein Schwierigkeiten mit insertionsort) dann nach dem Namen eines Kunden und nach dem Datum. Bei den letzten beiden habe ich schwierigkeiten. Ich weiß nicht mit welchem verfahren man Strings lexikographisch sortiert oder wie man datumsangaben sortiert. Kann mir jemand einen Hinweis geben. Bin auch für nützlichen Quellen im Netz dankbar.
MFG Malibu
alzaimar - So 14.09.08 10:17
Es gibt die Möglichkeit, eine Funktion zu schreiben, die zwei Strings so miteinander vergleicht, wie Du es willst. Wenn im Sortieralgorithmus dann auf '<','>' oder '=' geprüft wird, rufst Du einfach deine Funktion auf.
Die Funktion könnte -1 für '<' liefern,0 für '=' und 1 für '>' liefern.
Eine Funktion, die zwei Strings vergleicht, die ein Datum repräsentieren, könnte so aussehen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| Function CompareDate (Const aDateString1, aDateString2 : String) : Shortint; Var date1,date2 : TDateTime;
Begin date1 := StrToDateDef(aDateString1,0); date2 := StrToDateDef(aDateString2,0); if date1 < date2 then Result := -1 else if date1>date2 then Result := +1 else Result := 0 End; |
malibu85 - So 14.09.08 10:28
danke das ist ein guter ansatz. Ich war auf der suche nach einem Datentyp der ein Datum darstellt und den habe ich ja nun. Eins bleibt mir aber noch unklar. Und zwar das lexikografische Sortieren von Strings. In manchen Sprachen ist es möglich char für char eines Strings durch zu gehen aber ich weiß nicht ob das bei delphi geht. Gibt es für so etwas auch lösungen?
alzaimar - So 14.09.08 10:59
Du solltest dir einen 'Crashkurs Delphi' besorgen, einfach mal danach googeln.
Da Delphi im Gegensatz zu C eine freundliche Sprache ist, reicht es If StringA<StringB Then zu schreiben.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!