Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Inkompatible Typen integer boolean (https://www.delphipraxis.net/165339-inkompatible-typen-integer-boolean.html)

thechus 24. Dez 2011 21:18

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;

Luckie 24. Dez 2011 21:25

AW: Inkompatible Typen integer boolean
 
Zitat:

Zitat von thechus (Beitrag 1143036)
Code steht unten (Fehlerstelle rot markiert)

Ich geh mal davon aus, dass du dir deine Beitrag nicht noch mal angeguckt hast nach dem du ihn abgeschickt hast. Und warum postest du den ganzen Code und nicht nur den relevanten Teil?

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.

thechus 24. Dez 2011 21:33

AW: Inkompatible Typen integer boolean
 
Ja du hast recht...
ich war in Eile...

ich hoffe, dass es so besser aussieht.

Luckie 24. Dez 2011 21:39

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.

thechus 24. Dez 2011 21:42

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

Sir Rufo 24. Dez 2011 22:00

AW: Inkompatible Typen integer boolean
 
logisch, was soll denn das hier werden?
Delphi-Quellcode:
zaehler := x mod lenSchl +1 = 1
Eine Berechnung und am Ende ein Vergleich

thechus 24. Dez 2011 22:15

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

Luckie 24. Dez 2011 22:23

AW: Inkompatible Typen integer boolean
 
Ich sehe in dem von dir geposteten Code keine Division.

thechus 24. Dez 2011 22:28

AW: Inkompatible Typen integer boolean
 
Hmm...

Hier die Stelle, an der ich die Prozedur benutze:

Delphi-Quellcode:
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;
Hoffentlich hilft das etwas...

Sir Rufo 24. Dez 2011 23:26

AW: Inkompatible Typen integer boolean
 
Zitat:

Zitat von Luckie (Beitrag 1143044)
Ich sehe in dem von dir geposteten Code keine Division.

was macht denn wohl
Delphi-Quellcode:
mod
;)

und beim Aufruf von
Delphi-Quellcode:
addition( i )
ist i noch kein Wert zugewiesen worden, kann also alles mögliche sein (auch 0). Oder soll das ein Zufallsgenerator werden ;)

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 05:55 Uhr.
Seite 1 von 2  1 2      

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