![]() |
array of string sotieren
Hallo,
ich habe einen Array of String und möchte den gerne alphabetisch sotiert haben. Hier im Forum finde ich nur sotieralgorithmen für integer arrays. kann mir wer weiterhelfen? Gruß, ferby |
Re: array of string sotieren
Warum nimmst Du keine StringListe, ist mehr oder weniger auch nur ein Array von Strings,
diese kannst Du ganz einfach sortieren. Die Eigenschaft sorted auf true setzen. Grüße Klaus |
Re: array of string sotieren
Hallo,
bei mir gibts die eigenschaft sorted nicht?? meinst doch das oder:
Delphi-Quellcode:
procedure TForm1.Work3;
var kag: TStrings; begin kag:=TStringList.Create; kag.sorted; <-- gibts nicht kag.Free; |
Re: array of string sotieren
Delphi-Quellcode:
[edit] Wieso definierst Du die Variable nicht gleich als TStringList? [/edit]
kag.sorted := true;
|
Re: array of string sotieren
Hallo,
das wars, danke. In der Delphi Hilfe stands so drin, ka warum^^ |
Re: array of string sotieren
Weil TStringList eine Ableitung von TStrings ist.
Da nur die TStringList über die Eigenschaft sorted verfügt, TStrings aber nicht und du eine TStrings Instanz erzeugt hast, kannst du nicht auf diese property zugreifen. Lösung wie bereits genannt:
Delphi-Quellcode:
var
//kag: TStrings; kag: TStringList; |
Re: array of string sotieren
Mal als Anregung zum Fall Array.
Du kannst dir auch den vom Buchstaben zugehörigen ASCII-Code ermitteln, und eine temporäre Liste / 2dimensionales mit den ermittelten (nun Integer und somit vergleichbaren) Werten sortieren. In der ersten Spalte hast du den ermittelten Integer-Wert (ASCII-Code) und in der 2. Spalte den Index, von dem originalen Array. So müsstest du doch auch Arrays of String sortieren können?! |
Re: array of string sotieren
Oder selber QuickSort o.ä. implementieren
|
Re: array of string sotieren
Also man kann Strings auch einfach mit > < = vergleichen:
Delphi-Quellcode:
Gruß
if 'Altenheim' > 'Baumhaus' then
ShowMessage('Altenheim kommt nach Baumhaus im Alphabet!') else ShowMessage('Baumhaus kommt nach Altenheim im Alphabet!'); Neutral General |
Re: array of string sotieren
Zitat:
|
Re: array of string sotieren
Dies kann dadurch vermieden werden, das 'A' vor 'Ä' kommt aber 'A' gleichwertig mit 'a' ist.
|
Re: array of string sotieren
danke für die Tips, aber ich hab das mit ner Stringlist gemacht,
das hat, warum auch immer, einen super neben effekt den ich auch noch gebraucht hätte: Doppelte Einträge werden gelöscht :-) Data.KAG steht die unsotierte Elemente in kag dann die sotierten
Delphi-Quellcode:
kag:=TStringList.Create;
kag.sorted := true; for i:=0 to anzahl_elemente-1 do kag.Add(DATA[i].KAG); doppelte Einträge werden nicht angezeigt. |
Re: array of string sotieren
Zitat:
|
Re: array of string sotieren
Hallo,
unabhängig vom Datentyp gibt's in der Code-Library 2 Beiträge mit allgemeinen Sortier-Möglichkeiten (einmal mit Objekten und einmal auf Pointer-Basis). Also einfach 'ne kleine Compare-Funktion schreiben (in diesem Fall für Strings) und dann ist man schon fertig. ![]() ![]() Gruß Michael |
Re: array of string sotieren
Zitat:
|
Re: array of string sotieren
Zitat:
Möglichkeit 2 setze ich bei allen möglichen Datentypen ein und das geht eigentlich immer sehr gut. Dazu braucht man nur ne Vergleichsfunktion, das Austauschen geht ja byteweise. |
Re: array of string sotieren
Na ja, wie wärs dann einfach mit einer TList und einem Sort? Dann spart man sich die ganze Rumkopiererei, die doch sowieso überflüssig ist.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz