![]() |
Brauche Bitte Erklärung für Sortierbefehl!
Hallo !!
Hab hier einen Text und verstehe leider ein paar Zeilen nicht
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var i: Integer; j: Integer; temp:string; begin for i := 0 to memo1.Lines.Count - 1 do //warum -1, er nimmt für i die erste zahl und für j // die zweite, tauscht sie aus wenn nötig for j := i to memo1.Lines.Count - 1 do //und das solange bis j>i, warum -1??? begin if memo1.Lines[i]>memo1.Lines[j] then begin temp:=memo1.lines[i]; memo1.Lines[i]:=memo1.lines[j]; memo1.Lines[j]:=temp; |
Re: Brauche Bitte Erklärung für Sortierbefehl!
Hi!
Das -1 kommt daher, da ab 0 angefangen wird zu zählen. Hat das Memo 4 Zeilen, so haben sie die Zeilennummern 0,1,2 und 3. Memo1.Lines.Count gibt aber 4 zurück (es sind ja 4 Zeilen), also muss man von 0 bis 3 (eben genau 4-1) gehen. Ciao, Frederic |
Re: Brauche Bitte Erklärung für Sortierbefehl!
alles klar!!
danke!! |
Re: Brauche Bitte Erklärung für Sortierbefehl!
Hallo,
aber würde es nicht reichen, "i" bis "Memo1.Lines.Count - 2" laufen zu lassen und j bei i+1 beginnen zu lassen? Es wird doch immer die aktuelle Zahl (Index i) mit den darauf folgenden (Index i+1, i+2, ...) verglichen. Im letzten Durchlauf wird dann doch die letzte Zahl mit sich selbst verglichen und im ersten ebenfalls. Oder habe ich einen Denkfehler? Grüße, Matze |
Re: Brauche Bitte Erklärung für Sortierbefehl!
Zitat:
Aber man kann das Ganze auch so lösen:
Delphi-Quellcode:
var
temp: TStringList; begin temp := TStringList.Create; try temp.Assign(memo1.Lines); temp.Sort; memo1.lines := temp; finally temp.Free; end; end; |
Re: Brauche Bitte Erklärung für Sortierbefehl!
Delphi-Quellcode:
Und das soll funktionieren? :gruebel:
if memo1.Lines[i]>memo1.Lines[j] then
|
Re: Brauche Bitte Erklärung für Sortierbefehl!
Zitat:
|
Re: Brauche Bitte Erklärung für Sortierbefehl!
Is ja Wahnsinn :shock:
Man lernt doch immer noch dazu |
Re: Brauche Bitte Erklärung für Sortierbefehl!
Andersherum, warum solte es nicht?
TMemo.Lines ist vom Typ TStrings, und das ist wie folgt definiert:
Delphi-Quellcode:
Das Zauberwort ist default. Darum verweist in dem Beispiel Memo1.Lines[ i ] direkt auf einen String und den kann ich natürlich so vergleichen ;)
TStrings = class(TPersistent)
private ... public ... property Strings[Index: Integer]: string read Get write Put; default; // <-- das Zauberwort ... end; |
Re: Brauche Bitte Erklärung für Sortierbefehl!
Das mit dem default war mir klar. Was mir neu war, waren die Stringvergleiche auf >, <
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 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 by Thomas Breitkreuz