Error: Illegal expression treibt mich in den Wahnsinn :)

Für Fragen von Einsteigern und Programmieranfängern...

Error: Illegal expression treibt mich in den Wahnsinn :)

Beitragvon DOS » 13. Dez 2017, 21:16 Error: Illegal expression treibt mich in den Wahnsinn :)

Hallo liebe Forenmitglieder, ich hoffe ich bin hier richtig.

Ich lerne gerade etwas Pascal und stehe vor meinem ersten Problem, welches ich mal nicht mit Referenzen ect.. gelöst bekomme.
Und zwar bekomme ich bei einer einfachen If abfrage ob der Stringinhalt = '1' ist einen Error: Illegal expression angezeigt. Auch ein AnsiContainsText(exTmp,'1') bringt den gleichen fehler. Eventuell hilft es ja meinen Denkfehler zu erklären, das ich vorher eher in QB und VB Programmiert habe und da hatte ich bei einer einfachen if abfrage so nie Probleme gehabt wenn die Typen passten.

Nun meine Frage wieso? Habe ich eventuell das Problem zwei unterschiedliche Typen vergleichen zu wollen? Ich dachte bisher beides ist vom Typ String. Und vorallem was bedeutet Illegal expression genau?

Ich hoffe mir kann hier wer eventuell helfen :) Besten Dank schonmal.
Gruß DOS
Code: Alles auswählen
 
var
  var myFile : TextFile;
 var exTmp : String;
  Za1, Za2, Za3, Za4, Za5, Za6, Za7, Za8, Za9, Za10 : String;
  exZc1, exZc2, exZc3 : Boolean;
 
begin
 
  assignfile(myFile,eFile);
     reset(myFile);
     ReadLn(myFile,Za1);
     ReadLn(myFile,Za2);
     ReadLn(myFile,Za3);
     ReadLn(myFile,Za4);
     ReadLn(myFile,Za5);
     ReadLn(myFile,Za6);
     ReadLn(myFile,Za7);
     ReadLn(myFile,Za8);
     ReadLn(myFile,Za9);
     ReadLn(myFile,Za10);
     ReadLn(myFile,exTmp);
     CloseFile(myFile);
     If exTmp = '1' Then exZc1 = True; else exZc1 = false;
end;


Code: Alles auswählen
Hint: (11030) Start of reading config file C:\lazarus\fpc\3.0.2\bin\x86_64-win64\fpc.cfg
Hint: (11031) End of reading config file C:\lazarus\fpc\3.0.2\bin\x86_64-win64\fpc.cfg
Free Pascal Compiler version 3.0.2 [2017/02/27] for x86_64
Copyright (c) 1993-2017 by Florian Klaempfl and others
(1002) Target OS: Win64 for x64
(3104) Compiling projekt1.lpr
(3104) Compiling unit1.pas
(3104) Compiling unit1.pas
(3104) Compiling unit3.pas
C:\fpc\unit3.pas(23,26) Hint: (5024) Parameter "Sender" not used
C:\fpc\unit3.pas(24,24) Hint: (5024) Parameter "Sender" not used
C:\fpc\unit3.pas(86,38) Error: (3203) Illegal expression
unit3.pas(125) Fatal: (10026) There were 1 errors compiling module, stopping
Fatal: (1018) Compilation aborted
Error: C:\lazarus\fpc\3.0.2\bin\x86_64-win64\ppcx64.exe returned an error exitcode
 
DOS
 
Beiträge: 11
Registriert: 13. Dez 2017, 21:04
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Soner » 13. Dez 2017, 21:39 Re: Error: Illegal expression treibt mich in den Wahnsinn :)

Du hast Doppelpunkt vergessen. Ich habe hinzugefügt und rot markiert.
Bei Pascal macht man Zuweisungen mit := .
a:=1;

If exTmp = '1' Then exZc1 := True else exZc1 := false;
Soner
 
Beiträge: 411
Registriert: 26. Sep 2012, 23:07
Wohnort: Hamburg
OS, Lazarus, FPC: Win7Pro-32Bit, Immer letzte Lazarus Release mit SVN-Fixes | 
CPU-Target: 32Bit
Nach oben

Beitragvon DOS » 13. Dez 2017, 22:05 Re: Error: Illegal expression treibt mich in den Wahnsinn :)

Soner hat geschrieben:Du hast Doppelpunkt vergessen. Ich habe hinzugefügt und rot markiert.
Bei Pascal macht man Zuweisungen mit := .
a:=1;
If exTmp = '1' Then exZc1 := True else exZc1 := false;


Autsch, wenn man den Wald vor lauter Bäumen nicht mehr sieht. Besten dank, daran muss ich mich echt noch gewöhnen das Zuweisungen mit := statt mit einem einfachen = getätigt werden. Schade das die Compilerausgabe da keinen eindeutigen Hinweis gibt :D

Naja wie dem auch sei. Besten Dank :)
DOS
 
Beiträge: 11
Registriert: 13. Dez 2017, 21:04
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Mathias » 13. Dez 2017, 22:20 Re: Error: Illegal expression treibt mich in den Wahnsinn :)

Code: Alles auswählen
If exTmp = '1' Then exZc1 := True else exZc1 := false;

Dies kann man sogar einfacher machen. :wink:
Code: Alles auswählen
exZc1 := exTmp = '1'


Za? würde ich in eine Array packen, dann könntest du die ReadLn in eine for-to-Schleife nehmen. :wink:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4324
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon DOS » 13. Dez 2017, 23:25 Re: Error: Illegal expression treibt mich in den Wahnsinn :)

Mathias hat geschrieben:Za? würde ich in eine Array packen, dann könntest du die ReadLn in eine for-to-Schleife nehmen. :wink:


Joa, wäre noch eine überlegung wert mir Arrays in dem Zuge gleich mal anzuschauen, danke für den Tipp. Für den Anfang zum lernen wollte ich alles so einfach wie möglich halten. Schleifen habe ich noch keine genutzt in Pascal.
DOS
 
Beiträge: 11
Registriert: 13. Dez 2017, 21:04
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Mathias » 13. Dez 2017, 23:31 Re: Error: Illegal expression treibt mich in den Wahnsinn :)

Schleifen habe ich noch keine genutzt in Pascal.

Schleifen sind das a und o der Programmierung.

Wen du da etwas nicht verstehst einfach fragen. :wink:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4324
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

• Themenende •

Zurück zu Einsteigerfragen



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried