Guten Tag,
das hier ist mein erster Post in diesem Forum und ich hoffe mal, ich habe die richtige Sparte erwicht.
Na ja, ich fang dann gleich mal mit meinem Problem an:
Also ich bin dabei, die Huffmann Kodierung zu programmieren. Theoretisch finde ich das alles ja ganz einfach aber beim umsetzen ins Praktische stoße ich immer wieder auf kleine Probleme, an denen ich mir die Zähne ausbeiße.
Also, als erstes hab' ich hier eine Funktion erstellt, die, wenn sie fertig ist, alle Buchstaben zählen soll.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| function ZeichenZaehlen:integer; var int,int2,zaehler,IItem,IItem2:integer;
s:string; begin Zaehler:=0; IItem:=Form1.ListBox1.Count; s:=Form1.ListBox1.Items.text; for int:= 0 to IItem-1 do IItem2:= length(Form1.ListBox1.Items.Strings[0]); for int2:=0 to IItem2 do if s[int2] = 'a' then inc(Zaehler); showmessage(' Zaehler (a) hat den Wert:'+inttostr(zaehler)+', IItem hat den Wert:'+IntToStr(IItem)+' IItem2 hat den Wert:'+IntToStr(IItem2)+''); end; |
Nur leider ist mir aufgefallen, dass sie immer nur die, im moment nur "a", in der ersten Zeile zählt und sie dann mit der Zeilenanzahl multipliziert anstatt eine Zeile weiterzurücken.
Nun bräuchte ich eine Anweisung oder irgendwas, dass nach jedem Schleifendurchlauf den Zähler eine Zeile tiefer rücken lässt.
Freu mich über jede Hilfe.