Entwickler-Ecke
Sonstiges (Delphi) - Inkompatible Typen
Jenny - Mo 31.03.03 18:40
Titel: Inkompatible Typen
| 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 - 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 - 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
Jenny - 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);
:?
Delete - Mo 31.03.03 20:58
Was hat anz_buchstaben für einen Datentyp?
Jenny - Mo 31.03.03 21:07
steht doch oben bei den variablen... alles integer :?
Delete - 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 - 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 - 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?
Brueggendiek - 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 - Di 01.04.03 14:09
wow super das funktioniert, dankeschön :)
das einem solche simplen kleinigkeiten alles kaputt machen können :roll: :mrgreen:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!