Autor Beitrag
delphistart
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 119



BeitragVerfasst: Sa 15.09.07 09:56 
Hallo,

Ich habe ein denke ich eher einfaches Problem, finde aber einfach keine Lösung dafür:
Wie kann ich den ersten Wert nach alphabet aus einem Array bekommen?

Beispiel:
Das Array enthält die Werte: bdhrrf, asffhdf, augtz, fjtkl
Dann sollte "asffhdf" ausgegeben werden.

Danke für eure Hilfe!!!
Allesquarks
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 510

Win XP Prof
Delphi 7 E
BeitragVerfasst: Sa 15.09.07 10:37 
Das sind ja Zeichenketten also und die kann man nicht direkt vergleichen. Was man aber kann ist einzelne Buchstaben vergleichen und zwar sind die praktischerweise in der Asci Tabelle und da hat a einen kleineren index als b und so weiter du kannst also pber string1[i]<string2[i] rausfinden welcher Buchstabe zuerst kommt bei gleichheit musst du natürlich den zweiten Buchstaben überprüfen.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 15.09.07 11:47 
Schau Dir mal StrCompare und dessen Derivate an. Ich denk, die könnten Dir helfen.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
delphistart Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 119



BeitragVerfasst: Sa 15.09.07 11:58 
Vielleicht bin ich ein bisschen verwöhnt von PHP... aber einen einfachen Befehl der den Array sortiert gibt es bei Delphi nicht?

Ich könnte ja auch das Array sortieren und dann den ersten Eintrag nehmen?
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 15.09.07 12:01 
Wenn Du ein StringArray hast, könnte Dir da die TStringList helfen.

Aber nein ;-) Eine Funktion zum automatischen Sortieren eines Arrays gibt's nicht ;-)

Da muss ich dir zustimmen: PHP hat so seine Vorzüge ;-) Dafür hat Delphi wenn man's richtig macht den fehlenden Speed den PHP vermissen lässt.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
delphistart Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 119



BeitragVerfasst: So 16.09.07 07:33 
user profile iconBenBE hat folgendes geschrieben:
Wenn Du ein StringArray hast, könnte Dir da die TStringList helfen..


Danke für den Tipp! Ich werde es mal so probieren wie hier beschrieben forum.dsdt.info/viewtopic.php?p=57468
google ist unser Freund... :D

user profile iconBenBE hat folgendes geschrieben:
Da muss ich dir zustimmen: PHP hat so seine Vorzüge ;-) Dafür hat Delphi wenn man's richtig macht den fehlenden Speed den PHP vermissen lässt.

Wollte auch nicht Delphi angreifen. Hat auf jeden Fall noch mehr Vorzüge!
delphistart Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 119



BeitragVerfasst: Di 18.09.07 16:18 
Titel: Für alle die vielleicht nochmal das gleiche Problem haben
Ich habe jetzt statt eines Array eine StringList genommen und diese alphabetisch sortiert. Der erste Wert der Liste ist dann der den ich suche.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
//Stringlist erstellen
formen:=TStringList.Create;

//Beispielwerte einfügen
formen.Add('gjsgfjsfghj');
formen.Add('ahgjhgjkj');
formen.Add('dsdzdgjgss');

//Sortieren und ersten Wert in Edit-Feld ausgeben
formen.Sort;
Edit1.Text:=formen[0];

Nochmal Danke für eure HILFE!!! :wink: