| Autor |
Beitrag |
Jenny
      
Beiträge: 35
|
Verfasst: Mo 31.03.03 18:40
| Zitat: | procedure TForm1.Memo1Change(Sender: TObject);
var i, z, s,anz_buchstaben, anz_sonderzeichen, anz_leerzeichen, anz_steuerzeichen,
anz_ziffern, anz_vokale, anz_konsonanten, anz_w, w_len, w_max, w, x, y:integer;
txt: string;
begin
anz_buchstaben:=0;
anz_sonderzeichen:=0;
anz_leerzeichen:=0;
anz_steuerzeichen:=0;
anz_ziffern:=0;
anz_vokale:=0;
anz_konsonanten:=0;
anz_w:=0;
w_len:=0;
w_max:=0;
txt:=Memo1.text;
for i:=1 to length(txt) do
begin
s:=KleinInGross (txt[i]);
if s=#32 // #32=leerzeichen
then inc(anz_leerzeichen)
else
begin
if s in buchstaben
then begin inc(anz_buchstaben);
if s in vokale
then inc(anz_vokale)
else
inc(anz_konsonanten); }
end;
end;
end; |
an der fettgedruckten stelle sagt delphi das da inkompatible typen integer und char sind... was bedeutet das und was mach ich da?
dankeschön
Jenny
Moderiert von tommie-lie: Code-Tags wieder entfernt, Fett-Tag übersehen
|
|
UGrohne
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Mo 31.03.03 18:43
Da s ein integer ist, wird die Funktion KleinInGross wohl einen Char-Wert zurückliefern, das ist ein einzelnes Zeichen, versuch mal dieses mit Ord() in einen integer umzuwandeln, wenn Du nicht selbst die Funktion umschreiben willst/kannst sodass sie einen integer zurückliefert.
|
|
madigeMade
      
Beiträge: 24
|
Verfasst: Mo 31.03.03 19:19
Hi Jenny!
Ich denke es würde reichen wenn du s nicht als integer, sondern als string oder char deklarierst.
Gruß de Made
_________________ Ich kam, sah und schrieb ein Prog.
|
|
Jenny 
      
Beiträge: 35
|
Verfasst: Mo 31.03.03 20:52
danke made  in der zeile is der fehler nu weg...
aber jetzt sagt er das gleiche bei:
then begin inc(anz_buchstaben);

|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 31.03.03 20:58
Was hat anz_buchstaben für einen Datentyp?
|
|
Jenny 
      
Beiträge: 35
|
Verfasst: Mo 31.03.03 21:07
steht doch oben bei den variablen... alles integer 
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 31.03.03 21:15
Ich frage nur, weil es eigentlich gehen müßte, bzw. die Fehlermeldung dürfte an dieser Stelle nicht auftreten. Kuck mal, ob du in der richtigen Zeile bist.
|
|
Jenny 
      
Beiträge: 35
|
Verfasst: Mo 31.03.03 21:20
ja das wundert mich ja auch die ganze zeit weil die ganzen anz variablen logischerweise integer sind... der markiert die angegebene zeile als fehlermeldung bei der syntaxprüfung
|
|
waldmeister
      
Beiträge: 136
Win XP
D7 Enterp
|
Verfasst: Mo 31.03.03 21:52
ich glaub der fehler liegt in der zeile darüber!
Quelltext 1:
| if s=#32 // #32=leerzeichen |
s is doch en integer un #32 is kein integer! oder seh ich das falsch?
_________________ der wald....der meister....der meister des waldes....der waldmeister
|
|
Brueggendiek
      
Beiträge: 304
Win 98, Win98SE, Win XP Home
D5 Std
|
Verfasst: Di 01.04.03 00:58
Hallo Jenny!
Deklariere S als Char und gut is!
KleinInGross liefert wohl ein Char und der Vergleich ist ein Zeichenvergleich (#32 ist ein Char).
Auch die weiteren Vergleiche sollten einen Char erwarten.
Gruß
Dietmar Brüggendiek
|
|
Jenny 
      
Beiträge: 35
|
Verfasst: Di 01.04.03 14:09
wow super das funktioniert, dankeschön
das einem solche simplen kleinigkeiten alles kaputt machen können 
|
|