Einzelnen Beitrag anzeigen

Benutzerbild von Mokus
Mokus

Registriert seit: 24. Sep 2013
165 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Array durch Objectlist ersetzen

  Alt 8. Okt 2013, 08:25
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 ....
Markus
es gibt nur 10 arten von menschen !
die die binär verstehen und die die nicht. !

Geändert von Mokus ( 8. Okt 2013 um 08:27 Uhr) Grund: Reichtschreibfehler ? KANNST BEHALTEN ?!
  Mit Zitat antworten Zitat