Autor Beitrag
Murmel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79

xp
d6,d7
BeitragVerfasst: Fr 28.02.03 15:11 
wie geht das denn, hab versucht den text aus memo in eine stringbox zu quetschen, um ihn dann zu sortieren? danach soll der text dann wieder zurückgequetscht werden in die memo, sortiert natürlich... ach ja und mit einem anderen button sollte der text dann noch von doppelten wörtern befreit werden...
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Fr 28.02.03 17:17 
ausblenden Quelltext
1:
2:
3:
ListBox1.Items.Text := Memo1.Lines.Text;
ListBox1.Items.Sorted := True;
Memo1.Lines.Text := ListBox1.Items.Text;


Das mit dem Filtern von doppelten Zeilen mußt du schon selbst programmieren. Ein Tip. Fang von hinten an zu suchen und vergleich mit IndexOf (der den ersten gefunden angibt) ob unterschiedliche Itemnummern.

z.B.:

ausblenden Quelltext
1:
2:
3:
with ListBox1 do for i := Items.Count - 1 downto 0 do begin
  if (IndexOf(Items[i]) > -1) and ((IndexOf(Items[i]) < i) then Items.Delete(IndexOf(Items[i]));
end;


Alles ungetestet
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 28.02.03 19:17 
TStrings kennt glaube ich sowas wie "Dublikate ignorieren". Kuck mal in der Hilfe.
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Fr 28.02.03 22:42 
Aber nicht wen der Text bereits drinn ist.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 28.02.03 22:45 
Dann setzt die Eigenschaft zuerst und weis dann zu.
Wolff68
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 302
Erhaltene Danke: 1

WinXP home
D6 Prof
BeitragVerfasst: Sa 01.03.03 18:36 
Mal als Beidpiel mit einer ListBox als Zwischenspeicher:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer;
begin
  { ListBox leeren }
  ListBox1.Items.Clear;
  { Sortieren Anschalten }
  ListBox1.Sorted := true;
  { Zeilen des Memos durchgehen }
  For i := 0 to Memo1.Lines.Count -1 do begin
    { Wenn noch nicht enthalten, Text von Line[i] hinzufügen }
    { Dies geschieht dank Sorted := true gleich sortiert }
    IF ListBox1.Items.IndexOf(Memo1.Lines[i]) < 0 then begin
      ListBox1.Items.Add(Memo1.Lines[i]);
    end;
  end;
  { Zurückschreiben ins Memo }
  Memo1.Lines := ListBox1.Items;
end;


popov hat folgendes geschrieben:
ListBox1.Items.Text := Memo1.Lines.Text;

Wozu das .Text ? .Items und .Lines sind doch beides TStrings und somit zuweisbar!

_________________
"Der Mensch ist nicht was er sich vorstellt oder wünscht zu sein, sondern das was andere in ihm sehen."