Hey;
Arbeite an der gleichen Aufgabe wie Dyami;
problem ist bei unserem Quell text, ist die Kontrolle, ob ein
string in der Tobjectlist vorhanden ist.
per
result.IndexOf () // result = Twoerterzaehlen = class(TObjectlist)
kommt ne Meldung; inkompatible Typen.
Klar, String und Tobject. aber wie könnte man dieses Problem lösen ?
zu erst war die idee jedesmal .create
versucht mal ein index zurück zugeben, wenn der im Speicher immer wieder eine neue Position bekommt ...
die If abfrage würde also nie im Fall treten.
Was wollen wir den überhaupt erreichen ?
Wir haben
ein Memo.text ->
wird als commatext in eine Stringlist übergeben ->
diese Stringlist wird an die Methode übergeben ->
Durlaufen mit verschachtelter FOR schleife die Liste ->
möchten KOntrollieren ob der String in der TObjectlist vorhanden ist ->
WENN JA
Zähle den INDEX ein Hoch
WENN NEIN
Füge das WOrt hinzu & Zähle die Häufigkeit der Wörter ein hoch.
so .... wie kann man solches am besten anstellen ?!
Delphi-Quellcode:
i_idx := 0;
result := Twoerterzaehlen.created(0, ''); // *^1
// Durchlaufen der Wortlist
for i := 0 to st_woerter.count - 1 do
begin
b_vorhanden := false;
s_ewort := AnsiLowerCase(st_woerter[i]);
// Prüfen, ob Wort da
for a := 0 to result.count - 1 do
begin
if result.Items[a] = s_ewort then // falsch
begin
i_idx := result.IndexOf((Twoerterzaehlen.create(s_ewort))); // geändert werden
b_vorhanden := TRUE;
break;
end;
end;
// wenn ja, dann hochzählen
if b_vorhanden then
begin
// inc(result[i_idx]);
end
else
// Sonst ergänzen
begin
result.Add(Twoerterzaehlen.created(1, s_ewort));
end;
end;
end;
Delphi-Quellcode:
// *^1
constructor Twoerterzaehlen.created(Anz: integer; Wor: String);
begin
Anzahl := Anz;
Wort := Wor;
end;
Siehe oben; methode zur Häufigkeit der Wörter wieder geben.
bei weitere Fragen bitte melden ;
Danke für jede kleine Hilfe ....