Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Memofeld sortieren, brache hilfe! (https://www.delphipraxis.net/125466-memofeld-sortieren-brache-hilfe.html)

eClips2k 6. Dez 2008 16:47


Memofeld sortieren, brache hilfe!
 
Hey,

Ich versuche den Inhalt eines Memefeldes zu sortieren, hier ein Besipiel des Inhalts:

1;Belletristik;Kempowski, Walter;Uns gehts ja noch gold;München;;dtv
2;Jugend;Pressler, Mirjam;Novemberkatzen;Weinheim;1986;Beltz & Gelberg

Nun mein Problem, ich möchte diese Liste nach Titeln sortieren. Mein bisheriger Code sieht so aus:

SQL-Code:
procedure TfMain.Image9Click(Sender: TObject);
var
   i  : Integer;
   sortiert,x,y  : String;
begin
  For i:=0 to Memo1.Lines.Count-1 do begin
     x:=Memo1.Lines[i];
     y:=Memo1.Lines[i+1];
      If x > y then
        begin
        sortiert:=Memo1.Lines[i];
        Memo1.Lines[i]:=Memo1.Lines[i+1];
        Memo1.Lines[i+1]:=sortiert;
        end;
      end;
end;
Das Problem ist so greift er nur auf die am Begin stehenden Zahlen zu, wie komm ich an dem an 4ter Stelle stehenden Titel ran?
Würde mich über schnelle Hilfe freuen :)

Gruß eCLips

freak4fun 6. Dez 2008 16:50

Re: Memofeld sortieren, brache hilfe!
 
Ich halte das Memo für die falsche Komponente. Geeigneter wären ein Stringgrid / eine Listview. :gruebel:

mkinzler 6. Dez 2008 16:57

Re: Memofeld sortieren, brache hilfe!
 
Delphi-Quellcode:
Das Problem ist so greift er nur auf die am Begin stehenden Zahlen zu, wie komm ich an dem an 4ter Stelle stehenden Titel ran?
Für einen Bubblesortstimmt zudem die Richtung nicht. (Blase von unten nach oben).

eClips2k 6. Dez 2008 18:04

Re: Memofeld sortieren, brache hilfe!
 
Mein Problem ist das er auf die am Anfang stehende Zahl zugreift 1;.... somit soritiert er nur nach Zahlen.
Ich möchte aber gerne nach Titel sortieren der an 4ter stelle in einer Memo.Lines[1] sagen wir mal steht.

Somit bräuchte ich etwas wie x:=Memo1.Lines[i],pos(Titel); so ca.^^

hoffe einer von euch weiß wies geht... danke schonmal

mkinzler 6. Dez 2008 18:08

Re: Memofeld sortieren, brache hilfe!
 
Dann musst du diesen Teil aus dem String extrahieren und jeweils den extrahierten Teil vergleichen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz