| Autor |
Beitrag |
nano
Hält's aus hier
Beiträge: 14
|
Verfasst: 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
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: 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
      
Beiträge: 800
win98, winXP
D4 Standard; D6 Personal
|
Verfasst: 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 
Hält's aus hier
Beiträge: 14
|
Verfasst: 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
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Do 16.12.04 15:29
Das ist leider keine visuelle Komponente.
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; sl.Strings.Add('irgendwas'); Memo1.Lines.AddStrings(sl.Strings); sl.Free; end; |
So sollte es etwa aussehen
|
|
grayfox
      
Beiträge: 800
win98, winXP
D4 Standard; D6 Personal
|
Verfasst: 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
      
Beiträge: 800
win98, winXP
D4 Standard; D6 Personal
|
Verfasst: Do 16.12.04 15:33
und was ist mit dem ressourcenschutz?
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'); Memo1.Lines.AddStrings(sl.Strings); finally sl.Free end end; |
mfg, stefan
|
|
nano 
Hält's aus hier
Beiträge: 14
|
Verfasst: 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
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Do 16.12.04 15:40
Das Free hatte ich doch drinne. Na gut, ohne try finally. 
|
|
nano 
Hält's aus hier
Beiträge: 14
|
Verfasst: Do 16.12.04 16:15
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
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: 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 
Hält's aus hier
Beiträge: 14
|
Verfasst: 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
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: 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.
|
|