Autor Beitrag
nano
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Do 16.12.04 14:55 
hi,
also ziel des programms soll es sein, eine liste (1 wort pro zeile) in ein memo zu packen und dort dann zu überprüfen ob ein wort mehrmals vorkommt. wenn ein wort dann mehrmals vorkommt, sollen diese dann gelöscht werden. so das am ende jedes wort nur noch einmal vorkommt.
wäre für nen kleinen codeschnipsel sehr dankbar
mfg
nano
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 16.12.04 15:05 
Nimm doch eine TStringList und setze die Eigenschaft Sorted auf True.
Dann brauchst du die Liste nur noch durchgehen und die überflüssigen Zeilen löschen.
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: Do 16.12.04 15:11 
hallo nano!

nimm eine TStringList, setz das property sorted auf 'true'
und das property duplicates auf 'dupIgnore'

somit ersparst du dir auch das abklappern der liste und das löschen der doppelten einträge

mfg, stefan
nano Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Do 16.12.04 15:20 
öm, naja ich hab schon lang nix mehr mit delphi gemacht. also wo kann ich die Tstringlist finden? kenn da nur das stringgrid. hab Delphi 5. und so weit ich weiss kann ich bei dem stringgrid net alles mit copy&past machen.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 16.12.04 15:29 
Das ist leider keine visuelle Komponente.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure blabla;
var
  sl : TStringList;
begin
  sl := TStringList.Create;
  sl.Sorted := True;
  sl.Duplicates := dupIgnore; // Danke Grayfox, hatte ich vergessen
  sl.Strings.Add('irgendwas'); // hier musst du dann eine Schleife für deine Strings basteln
  Memo1.Lines.AddStrings(sl.Strings); // Das kommt dann in dein Memo zum Anzeigen
  sl.Free;
end;


So sollte es etwa aussehen
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: Do 16.12.04 15:31 
Zitat:
und so weit ich weiss kann ich bei dem stringgrid net alles mit copy&past machen.
:?:

ein tipp am rande: tippe einfach 'TStringList' in die IDE, stell den cursor drauf und klick auf F1.
damit bekommst du mal einen überblick, womit du eigentlich arbeitest

mfg, stefan
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: Do 16.12.04 15:33 
und was ist mit dem ressourcenschutz?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure blabla;  
var  
  sl : TStringList;  
begin  
  sl := TStringList.Create;  
  sl.Sorted := True;  
  sl.Duplicates := dupIgnore;
  try
    sl.Strings.Add('irgendwas'); // hier musst du dann eine Schleife für deine Strings basteln  
    Memo1.Lines.AddStrings(sl.Strings); // Das kommt dann in dein Memo zum Anzeigen  
  finally
    sl.Free
  end
end;


mfg, stefan
nano Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Do 16.12.04 15:40 
hm ja, bin schon schlauer geworden.

was wie kommt mein .txt file mit meinen wörten in die liste??

mit: sl.LoadFromFile(Path);


???
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 16.12.04 15:40 
Das Free hatte ich doch drinne. Na gut, ohne try finally. :oops: :wink:
nano Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Do 16.12.04 16:15 
:beer:
so klapt jetzt alles soweit.
finde es aber doof, das ich die liste auch sotieren muss dafür. des hatt ich eigentlich net vor.
aber egal, hauptsach ich muss net von hand löschen.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 16.12.04 16:31 
Hast du es denn mal mit Sorted := False getestet? Wesentlich ist für dich doch die Prüfung auf doppelte. Auf die Sortierung bin ich ja nur gekommen, weil ich nicht an die Eigenschaft Duplicates gedacht hatte.
nano Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Do 16.12.04 16:43 
nee, hab ich jetzt net dran gedacht. ich hatte es nur auskommentiert.
aber jetzt is es auch zu spät, weil ich datei mit den sortierten überschrieben hab.
schlimm ist es im prinzip nicht.
aber ich bau noch nen knopp ein, wo ich dann auswählen kann, ob es sotiert werden soll oder nicht.... für nächste mal..
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Do 16.12.04 17:47 
Hallo,

dublicates funktionier nur, wenn die Liste sortiert ist.

Gruß Hape!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.