Thema: PC-Wortschatz

Einzelnen Beitrag anzeigen

Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: PC-Wortschatz

  Alt 3. Dez 2009, 18:49
@himitsu: Siehe oben: Es kommt halt darauf an, wie viel Text er hat...

@Topic: Am besten zählst du erstmal die absolute Häufigkeit der verschiedenen Buchstaben. Mache dir ein Array of integer mit 26 (wenn du Umlaute mitzählen willst dann eben 29, mit scharfem "s" 30) Feldern. Diese Felder müssen am Anfang natürlich 0 sein. Dann gehst du Zeichen für Zeichen deines Textes durch und erhöhst jeweils den entsprechenden Wert. Also ungefähr so:

Delphi-Quellcode:
var Buchstaben : array[0..25] of integer;
var i : integer;
var c : Char;
begin
   //--
   if Memo1.Text <> 'then
   begin
      for i := Low(Buchstaben) to High(Buchstaben) do Buchstaben[i] := 0;
      //
      for i := 1 to Length(Memo1.Text) do
      begin
         c := AnsiUpperCase(Memo1.Text[i])[1];
         //
         case c of
         'A' : inc(Buchstaben[0]);
         'B' : inc(Buchstaben[1]);
         // und so weiter
         end;
      end;
   end;
end;
In dem Buchstaben-Array hast du dann jeweils die absolute Häufigkeit der Buchstaben. Mit der kannst du dann im nächsten Schritt weiterarbeiten. Noch eine kleine Anmerkung: den Case-Teil kannst du auch etwas vereinfachen, z.b. so:

if c in ['A'..'Z'] then inc(Buchstaben[Ord(c)-Ord('A')]); So kannst du dir die case-Abfrage sparen, ist aber wahrscheinlich etwas schwieriger zu verstehen.

MFG
Patti
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat