habe jetzt in meinem button eingefügt, dass wenn ein leerstring vorhanden ist, die zeile gelöscht wird. aber irgendwie funktioniert das nicht ganz.... wenn er es sortiert hat fehlt ein wort und die obere zeile ist leer....
ich habe mir jetzt gedacht, dass ich die zeile um einen verschiebe, wenn eine zeile gelöscht wurde.
also entweder lasse ich ihn das ganze noch einmal prüfen ab der gelöschten zeile oder mache es so wie ich es probiert habe....
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
lArray:
array of String;
i, j : Integer;
A, B :
String;
begin
SetLength(lArray, Memo1.Lines.Count);
for i := 0
to Memo1.Lines.Count -1
do
begin
//sicherstellen, dass der String min. ein Zeichen hat.
if Memo1.Lines.Strings[i] = '
'
then
begin
Memo1.Lines.Delete(i);
dec(j);
//klappt trotzdem nicht
end else
begin
lArray[i] := Memo1.Lines.Strings[i][1];
end;
end;
//Array sortieren.
ShellSort(lArray);
//TODO: Array zurück ins Memo kopieren.
Memo1.Lines.Clear;
Memo1.Lines.Add('
');
for i := 0
to Length(lArray) - 1
do
begin
Memo1.Lines.Add(lArray[i]);
end;
end;
naja es klappt aber irgendwie nicht.