Hi,
Zitat:
...wobei mir noch nicht ganz klar ist wieso er nach
der umänderung zu #0 den char komplett übersieht, wo doch in anzahl und haefig noch zahlen enthalten sind
nun, zuerst setzt du mit
d:=0;
dein Flag auf 0. Es wird später nur dann auf 1 gestezt, wenn in datensatz.zeichen der aktuelle Buchstabe gefunden wurde:
Delphi-Quellcode:
if b=datensatz[e].zeichen then
begin
datensatz[e].anzahl:=datensatz[e].anzahl+1;
c:=0;
d:=1; // d gibt an ob der buchstabe schon zugeordnet wurde
end
else
begin
c:=c-1; //c geht alle buchstaben durch
e:=e-1; // e ist hier der zähler um alle datensätze abzuklappern
end;
end;
und dann prüfst du dein Flag auf 0, also ob der aktuelle Buchstabe NICHT gefunden wurde. Nur dann initialisierst du die restlichen Datensatz-Felder mit den passenden Werten:
Delphi-Quellcode:
if d=0 then
begin
zahl:=zahl+1;
datensatz[zahl].zeichen:=b;
datensatz[zahl].anzahl:=1
end;
Habe ich dein Programm richtig verstanden