![]() |
Inkompatible Typen integer boolean
Liebes Forum,
ich bin hier grad am letzten Schritt meines Verschlüsselungsprogrammes angelangt... und verzweifle an folgender Fehlermeldung: Inkompatible Typen: 'integer' und 'boolean' Ich hoffe ihr könnt mir helfen, da ich in Delphi noch nicht sonderlich viel Erfahrung habe. Code steht unten (Fehlerstelle rot markiert), Danke und Frohe Weihnachten!!
Delphi-Quellcode:
var
SchlWort: string; [...] procedure TForm1.addition(x: integer); var p2, zaehler, i: integer; c2: char; begin zaehler := x mod lenSchl +1; [COLOR="rgb(139, 0, 0)"] c2 := schlwort[zaehler];[/COLOR] p2 := pos(c2, ga); ga2 := copy(ga,p2,LenA - p2 + 1) + copy(ga,1,p2 - 1) end; |
AW: Inkompatible Typen integer boolean
Zitat:
Wozu die ganzen globalen Variablen? Wenn du schon keine eigen Klasse für den Verschlüsselungsalgorithmus machst, dann pack sie doch zumindest in den Private-Abschnitt der Form Klasse. |
AW: Inkompatible Typen integer boolean
Ja du hast recht...
ich war in Eile... ich hoffe, dass es so besser aussieht. |
AW: Inkompatible Typen integer boolean
Jetzt fehlt natürlich die Information, was schlwort für einen Datentyp hat. Aber davon mal abgesehen hat c2 den Datentyp char. Also müsste in der Fehlermeldung irgendwas mit char auftauchen.
|
AW: Inkompatible Typen integer boolean
SchWort ist String
Ja, das habe ich mir auch gedacht. Aber die Fehlermeldung ist die, die ich nannte. Gruß thechus |
AW: Inkompatible Typen integer boolean
logisch, was soll denn das hier werden?
Delphi-Quellcode:
Eine Berechnung und am Ende ein Vergleich
zaehler := x mod lenSchl +1 = 1
|
AW: Inkompatible Typen integer boolean
Achja!
dieses "=1" ist versehentlich hineingeraten.... nur muss ich das jetzt hinbekommen dass nicht durch 0 dividiert wird... compiliere ich den Quellcode und teste das Programm wird mir die Fehlermeldung angezeigt, dass ich durch 0 dividiere. wüsste jemand eine Antwort? Oder benötigt es dazu weitere Informationen? Danke für die Hilfe! Gruß, thechus |
AW: Inkompatible Typen integer boolean
Ich sehe in dem von dir geposteten Code keine Division.
|
AW: Inkompatible Typen integer boolean
Hmm...
Hier die Stelle, an der ich die Prozedur benutze:
Delphi-Quellcode:
Hoffentlich hilft das etwas...
var
Form1: TForm1; gt, ka,ga, ga2, schlwort: string; lenT, lenA, schluessel, schl, lenSchl: integer; c: char; procedure TForm1.ErzeugeGa(); var i, Wert1, Wert2: integer; c: char; begin if Edit1.Text = '' then Showmessage('Invalid Key') else begin ga := ''; addition(i); lenA := length(ka); SchlWort := Edit1.Text; schl := pos(SchlWort[1],ka); LenSchl := length(SchlWort); if pos(SchlWort[1],ka) = 0 then Showmessage('Invalid Key') else For i := 1 to LenA do begin c := ka[i]; Wert1 := ord(c); Wert2 := ((Wert1 - 44)* schl mod 79) + 44; ga := ga + chr(Wert2); end; Panel1.Caption := ga; Panel2.Caption := ka; end; end; |
AW: Inkompatible Typen integer boolean
Zitat:
Delphi-Quellcode:
;)
mod
und beim Aufruf von
Delphi-Quellcode:
ist i noch kein Wert zugewiesen worden, kann also alles mögliche sein (auch 0). Oder soll das ein Zufallsgenerator werden ;)
addition( i )
Ach ja und LenSchl hat bei dem Aufruf auch noch keinen Wert bekommen und da es eine globale Variable ist, hat die wohl den Wert 0. Somit ist das Verhalten nicht verwunderlich. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 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