?? Spørgsmål ??

Tags:    delphi

Hvordan kan jeg få en memo til at sortere, så det største tal stå øverst?

Når jeg indtaster et tal i en Edit og "adder" den til en memo

memo1.lines.Add(Edit.text);

og jeg så "adder" flere tal.

Hvordan får jeg så memo'en til at sætte tallene i rækkefølge med det største tal øverest ??

Håber i forstå hvad jeg mener??



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Hvordan kan jeg få en memo til at sortere, så det største tal stå øverst?

Når jeg indtaster et tal i en Edit og "adder" den til en memo

memo1.lines.Add(Edit.text);

og jeg så "adder" flere tal.

Hvordan får jeg så memo'en til at sætte tallene i rækkefølge med det største tal øverest ??

Håber i forstå hvad jeg mener??


Dette her skulle hjælpe:

<pre>
var
t:integer;
pointer:integer;
buffer:string;
begin
pointer:=memo1.lines.count-1;
for t:=0 to memo1.lines.count-1 do
begin
if strtoint(memo1.lines[t])>strtoint(memo1.lines[pointer]) then
begin
buffer:=memo1.lines[pointer];
memo1.lines[pointer]:=memo1.lines[t];
memo1.lines[t]:=buffer;
end;
end;
</pre>
Det er en bubblesort algoritme, dette er et forenklet eksempel hvor jeg har gået ud fra der kun er tale om heltal....
Det er noget upraktisk at have tallene i en memo, jeg ville foreslå et array eller en vector...[Redigeret d. 20/03-02 09:39:15 af Stefan Svensson]


Øhm... Jeg tror der er et problem.
Jeg prøvede at lave dit eksempel med en memo og en button og indsatte tallene 0-9 i memo'en i følgene rækkefølge:

3
2
4
1
5
7
9
8
6
0

Resultatet blev:

0
2
3
1
4
5
7
8
6
9

Emil Melgaard
<p><a href="mailto:emil.melgaard@private.dk">emil.melgaard@private.dk</a></p>[Redigeret d. 20/03-02 17:52:52 af Emil]



En smart men lidt primitiv måde ville være at smide alt indholdet over i en ListBox hvor property'en Sorted er sat til true og dernæst smide indholdet tilbage i memo'en.

¤¤¤ Mark H. Jensen ¤¤¤



User
Bruger #937 @ 16.03.02 23:32
<quote>En smart men lidt primitiv måde ville være at smide alt indholdet over i en ListBox hvor property'en Sorted er sat til true og dernæst smide indholdet tilbage i memo'en.

¤¤¤ Mark H. Jensen ¤¤¤</quote>

Eller smid dit data i et array som du så kører en sorterings algoritme på.



Hvordan kan jeg få en memo til at sortere, så det største tal stå øverst?

Når jeg indtaster et tal i en Edit og "adder" den til en memo

memo1.lines.Add(Edit.text);

og jeg så "adder" flere tal.

Hvordan får jeg så memo'en til at sætte tallene i rækkefølge med det største tal øverest ??

Håber i forstå hvad jeg mener??



Dette her skulle hjælpe:

<pre>
var
t:integer;
pointer:integer;
buffer:string;
begin
pointer:=memo1.lines.count-1;
for t:=0 to memo1.lines.count-1 do
begin
if strtoint(memo1.lines[t])>strtoint(memo1.lines[pointer]) then
begin
buffer:=memo1.lines[pointer];
memo1.lines[pointer]:=memo1.lines[t];
memo1.lines[t]:=buffer;
end;
end;
</pre>
Det er en bubblesort algoritme, dette er et forenklet eksempel hvor jeg har gået ud fra der kun er tale om heltal....
Det er noget upraktisk at have tallene i en memo, jeg ville foreslå et array eller en vector...[Redigeret d. 20/03-02 09:39:15 af Stefan Svensson]



t