![]() |
case und zähl problem
hey,
ich stehte vor dem problem das ich aus einem eingabe feld jeden buchstaben durchgehe und dann schon was er im acsii code darstellt
Delphi-Quellcode:
es geht mir nun darum wie ich heraus finde wie oft er im text vorkamm, den im moment stellt er ja nur fest ob es über habt diesen buchstaben gab
case a of
69,101: label1.Caption:='E:'; end; mfg max [edit=mkinzler]Delphi-Tag gefixt Mfg, mkinzler[/edit] |
Re: case und zähl problem
Hallo,
du müsstest eine var. anlagen vom Typ integer, den Text durchgehen, und jedesmal wenn das Zeichen vorkommt die Var. hochzählen. z.b. mit einer For Schleife oder so. Gruß Jens |
Re: case und zähl problem
Delphi-Quellcode:
var i : integer;
//im case dann inc(i); //oder halt i := i+1; |
Re: case und zähl problem
Delphi-Quellcode:
jetzt stellt sich mir nur noch die frage wie ich das zusammen henge, das mit dem + sieht komisch aus
case a of
69,101: label1.Caption:='E:'+inc(c); end; danke schon |
Re: case und zähl problem
Du musst hochzählen und dann die Zahl mit IntToStr ausgeben.
Wenn du wirklich nur einen bestimmten Buchstaben und nicht mehrere suchst, brauchst du kein case, da reicht ein simples if. |
Re: case und zähl problem
Hier eine weitere Möglichkeit (obwohl wir so etwas schon einmal in der DP hatten, da müssten auch hochoptimierte Lösungen zu finden sein):
Delphi-Quellcode:
Eine mögliche Auswertung könnte dann z.B. so aussehen:
type TCharArray = array['A'..'Z'] of integer; //für die Buchstaben A bis Z, ggf. erweitern
function CountChars(const Str: string): TCharArray; var i: integer; begin FillChar(Result,SizeOf(Result),0); for i := 1 to Length(Str) do if Upcase(Str[i]) in ['A'..'Z'] then //falls oben erweitert, auch hier anpassen inc(Result[Upcase(Str[i])]); end;
Delphi-Quellcode:
procedure TMainForm.btnCountClick(Sender: TObject);
var arr: TCharArray; c: Char; begin arr := CountChars('Emil und die Detektive'); for c := Low(arr) to High(arr) do ListBox1.Items.Add(Format('%s: %d',[c,arr[c]])); end; |
Re: case und zähl problem
gut, ich will damit später dann noch weiter arbeiten und da kommt das schlecht in meinem konzept,
ich hab vor das auf das ganz alphabet auszubauen, warum geht
Delphi-Quellcode:
das nicht
69,101: label1.Caption:= inttostr (inc(c));
|
Re: case und zähl problem
Weil inc eine Prozedur ist und somit keinen Rückgabewert liefert.
|
Re: case und zähl problem
Du müsstest erst erhöhen und dann kannst du c ausgeben.
|
Re: case und zähl problem
Und zum Thema ganzes Alphabet: schau Dir #6 nochmal ganz genau an.
|
Re: case und zähl problem
ich muss mal kurz eine zwischen frage stelle und zwar wie erzeugt ich in einem memo ein umsprung also
text //Umsprung text |
Re: case und zähl problem
Neue Frage, neuer Thread bitte, sonst geht hier alles durcheinander ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz