| Autor |
Beitrag |
elduchte
      
Beiträge: 199
Win 2000, Win XP
Delphi 7
|
Verfasst: So 22.06.03 18:18
Hallo,
wie kann ich in einem Memo-Feld nach doppelten Wörtern suchen?
Die Abfrage nach einzelnen Zeilen habe ich schon hinbekommen, doch wie weiter?
Danke und Gruß
Andreas
|
|
Moritz M.
      
Beiträge: 1672
|
Verfasst: Mo 23.06.03 12:40
Hi
Also, du brauchst folgendes:
-Zwei TStringList oder TStrings
-Eine Funktion
Die muss in etwa so ausschauen:
Die Wöter einzeln druch die Leerezeichen getrennt in eine Liste aufnehmen und dann, falls ein solcher Eintrag bereits existiiert (Arbeite mit LowerCase) In die zweite Schreiben. Da hast du dann alle Wörter, die doppelt vorkommen.
Wenn du nicht weißt wie tipp ich sie dir gerne.
|
|
elduchte 
      
Beiträge: 199
Win 2000, Win XP
Delphi 7
|
Verfasst: Mo 23.06.03 12:53
das Problem welches ich habe, ist die Anzahl der Zeilen des Memos zu errechen und dann aus jeder Zeile jedes Wort filtern.
Wenn du mir da nochmal helfen kannst????
Danke
Andreas
|
|
Moritz M.
      
Beiträge: 1672
|
Verfasst: Mo 23.06.03 12:57
Das Problem verstehe ich nun nicht 
|
|
elduchte 
      
Beiträge: 199
Win 2000, Win XP
Delphi 7
|
Verfasst: Mo 23.06.03 13:37
also, ich weiß, wie ich auf die einzelnen Zeilen einer Memo zugreifen kann. Da ich alle Zeilen nach Wörter durchsuchen muss, muss ich doch eine Schleife benutzen, in der ich sage : Beginne bei Zeile 0 und Ende bei Zeile xx des Memos. Wie bekomme ich aber nun heraus, wieviele Zeilen das Memo enthält?
Und wenn ich weiß, wieviele Zeilen das Memo enthält, muss ich doch mit einer weiteren (vielleicht auch mit der oberen) Schleife jede Zeile durchlaufen und so jedes Wort filtern. Aber wie kann ich aus jeder (einer) Zeile alle Wörter auslesen, so dass ich zB jedes Wort einzeln in einem Array ablegen kann ?
Oder denke ich zu kompliziert????
Gruß
Andreas
|
|
StefanH
      
Beiträge: 1144
Win XP
D5 Standard, D7 Pers, D2005 Pers
|
Verfasst: Mo 23.06.03 16:09
Wieviele Zeilen dein Memo hat?
Delphi-Quelltext
Irgendwie vielleicht auch noch ein -1 glaub ich
Kopier halt deinen Text irgendwo hin und fängst an von Leerzeichen zu Leerzeichen das Wort in ´nen Array zu schreiben oder so
Vielleicht konnte ich helfen
Stefan
_________________ "Als es noch keine Computer gab, war das Programmieren noch relativ einfach."(Edsger W. Dijkstra)
"Ich bin nicht von Sinnen, sondern ich rede wahre und vernünftige Worte." (Paulus)
|
|
elduchte 
      
Beiträge: 199
Win 2000, Win XP
Delphi 7
|
Verfasst: Mo 23.06.03 17:16
genauso will ich das auch machen, allerdings weis ich nicht, wie ich diese textzeilen von wort zu wort lesen kann, um jedes wort einzeln zu speichern..... 
|
|
madigeMade
      
Beiträge: 24
|
Verfasst: Mo 23.06.03 17:34
Also Wörter im Deutschen haben ja eine Gemeinsamkeit. Sie werden durch Leerzeichen getrennt. Also kannst du doch deine Memozeile nach Leerzeichen überprüfen, und die Werte dazwischen sind Wörter. Z.b.
Lies dir die aktuelle Zeile in die Var "Zeile" und dann:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| var laenge:integer; hilf:string; begin hilf:=''; for laenge:=1 to length(zeile) do begin if zeile[laenge]<>' ' then hilf := hilf + zeile[laenge]; if zeile[laenge]=' ' then ... // Jetzt hast du ein Wort auf der Variablen hilf end; |
Gruß de Made
_________________ Ich kam, sah und schrieb ein Prog.
|
|
Tweafis
      
Beiträge: 647
WinXP + fbsd
Delphi 5 Prof
|
Verfasst: Mo 23.06.03 17:48
Wörter werden nicht nur durhc ' ' getrennt sondern auch durch:
'. '
', '
': '
'; '
'/'
'! '
'? '
usw.
darauf musst du achten, denn bei der ' ' Methode bekomsmt du bei einem 'blabla' und beim anderen vielleciht 'blabla;' und das ist dann ja nicht gleich...
_________________ .: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
|
|
madigeMade
      
Beiträge: 24
|
Verfasst: Mo 23.06.03 17:58
Ok, aber dann kann man ja auch schreiben :
Quelltext 1:
| if (zeile[laenge] in ['a'..'z','A'..'Z','Ä','ä','Ö','ö','Ü','ü','ß']) then hilf := hilf + zeile[laenge]; |
Und bei belieben auch noch andere Zeichen oder man macht es so:
Quelltext 1:
| if not (zeile[laenge] in ['.' , ',', ':', ';', '/', '!', '?', ' ']) then ... |
Gruß de Made
_________________ Ich kam, sah und schrieb ein Prog.
|
|