AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

case und zähl problem

Offene Frage von "mlhk"
Ein Thema von mlhk · begonnen am 10. Mai 2009 · letzter Beitrag vom 11. Mai 2009
Antwort Antwort
Seite 1 von 2  1 2      
mlhk

Registriert seit: 4. Mai 2009
29 Beiträge
 
#1

case und zähl problem

  Alt 10. Mai 2009, 17:30
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:
case a of
69,101: label1.Caption:='E:';

end;
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
mfg
max

[edit=mkinzler]Delphi-Tag gefixt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#2

Re: case und zähl problem

  Alt 10. Mai 2009, 17:37
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
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: case und zähl problem

  Alt 10. Mai 2009, 17:43
Delphi-Quellcode:
var i : integer;
//im case dann
inc(i); //oder halt i := i+1;
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
mlhk

Registriert seit: 4. Mai 2009
29 Beiträge
 
#4

Re: case und zähl problem

  Alt 10. Mai 2009, 17:52
Delphi-Quellcode:
case a of
69,101: label1.Caption:='E:'+inc(c);

end;
jetzt stellt sich mir nur noch die frage wie ich das zusammen henge, das mit dem + sieht komisch aus
danke schon
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: case und zähl problem

  Alt 10. Mai 2009, 17:53
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

Re: case und zähl problem

  Alt 10. Mai 2009, 17:56
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:
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;
Eine mögliche Auswertung könnte dann z.B. so aussehen:
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;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mlhk

Registriert seit: 4. Mai 2009
29 Beiträge
 
#7

Re: case und zähl problem

  Alt 10. Mai 2009, 18:00
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 69,101: label1.Caption:= inttostr (inc(c)); das nicht
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

Re: case und zähl problem

  Alt 10. Mai 2009, 18:01
Weil inc eine Prozedur ist und somit keinen Rückgabewert liefert.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: case und zähl problem

  Alt 10. Mai 2009, 18:08
Du müsstest erst erhöhen und dann kannst du c ausgeben.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#10

Re: case und zähl problem

  Alt 10. Mai 2009, 18:09
Und zum Thema ganzes Alphabet: schau Dir #6 nochmal ganz genau an.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz