Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Einträge aus memo mit TStringList Sortieren (https://www.delphipraxis.net/22951-eintraege-aus-memo-mit-tstringlist-sortieren.html)

DelphiNooby 26. Mai 2004 19:12


Einträge aus memo mit TStringList Sortieren
 
Hallo Zusammen,

ich will einträge aus einer Memo Sortieren, aus diesem Grund gebe ich die einträge an eine TStringlist weiter, in welcher diese dann sortiert werden. Danach will ich sie in einer anderen ListBox ausgeben.

So sehen die Einträge in der Memo aus:
Zitat:

001, Testfahrer, Anton, 8a, m, 1980, , ,
002, Testfahrerin, Berta, 8b, w, 1982, 10:00:00, 10:03:15, 02:13
003, Dummy, Clausi, 10a, m, 2000, 9:28:30, 10:59:54, 1:55:59
Mein bisheriger Quellcode:
Code:
procedure TSortiert.FormCreate(Sender: TObject);
var index,index2:Integer;
begin
 Daten:=TStringList.Create;
 Daten.text:=OrginalMemo.Lines.Text;
 For index:=0 to OrginalMemo.Lines.Count-1  do
 begin
   Daten.Objects[index]:=TObject(index);
 end;
end;
Code:
procedure TSortiert.SortierenButtonClick(Sender: TObject);
var index,index1,index2, SortPar : Integer;
Str : String;
begin
SortPar:=StrToInt(Sortieren.PosPanel.Caption);
for index1:=0 to Daten.Count-1 do
  for index2:=1 to SortPar do
  begin
    Str:=Daten[index1];
    Delete(Str,1,Pos(',',Str));
    Daten[index1]:=Str;
  end;
 Daten.Sort;
 for index:=0 to Daten.Count-1 do
 begin
   AusgabeBox.Items.Add(OrginalMemo.Lines[Cardinal(Daten.Objects[index])]);
 end;
end;
Leider werden in der ListBox die Einträge nicht sortiert ausgegeben, sondern immer nur der erste Eintrag der Memo.

Für Hilfe/Verbesserungsvorschläge wäre ich euch sehr Dankbar.

Chewie 26. Mai 2004 19:24

Re: Einträge aus memo mit TStringList Sortieren
 
Ui. So würd ich das nicht machen.

1. Die Zeilen in einem Memo bilden zusammen eine TStringList.
2. Die Zeilen in einer Listbox auch
3. TStringList verfügt über eine Methode Sort zum Sortieren der Einträge.

DelphiNooby 26. Mai 2004 19:46

Re: Einträge aus memo mit TStringList Sortieren
 
Zitat:

3. TStringList verfügt über eine Methode Sort zum Sortieren der Einträge.
Ja das weiss ich, deshalb lese ich die Daten ja auch in die TStringList.


Wir haben die Einträge so von unserem Informatik Lehrer in einer Textdatei bekommen und müssen diese in eine Memo einlesen.

Ein Teilaufgabe in diesem Projekt ist, diese Einträge nach bestimmte Kriterien zu Sortieren.
Nun weiß ich aber nicht was ich falsch gemacht habe, denn eigentlich müsste es meiner nach so laufen.
Es handelt sich wahrscheinlich nur um einen kleinen Fehler, diesen kann ich jedoch leider nicht finden.

Vielleicht siehteiner von euch was ich falsch gemacht habe.

The-X 26. Mai 2004 23:06

Re: Einträge aus memo mit TStringList Sortieren
 
was Chewie meint ist, dass Memo.Lines schon eine Stringlist ist
==> Memo.Lines.Sort; // Fertig :mrgreen:

[edit] uuups ;) im Code vertuppselt [/edit]

DelphiNooby 27. Mai 2004 14:26

Re: Einträge aus memo mit TStringList Sortieren
 
hmm ja ok stimmt.

Aber so kann ich doch nur den String doch nur nach den Anfangszeichen Sortieren und nicht nach verschiedenen Kriterien, welche durch ein ',' getrennt sind. Oder verstehe ich da was falsch?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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