Pascal: val-Befehl funktioniert nicht!?

Hallo zusammen,

Kurz als Einleitung: In der Schule (bin ich mittlerweile aber fertig) hatten wir im Informatikunterricht Pascal. Ich programmiere jetzt in den Ferien einfach so zum Spaß in eigenem Interesse ein wenig mit Turbo Pascal 5.5. Ich wollte nun eine String-Variable in eine Integer-Variable umwandeln. Dies sollte ja eigentlich mit folgender Syntax klappen:

integer:=val(string, integer);

Allerdings kommt beim Compilieren immer diese Fehlermeldung: „Error in expression“
Der Quellcode sieht an der Stelle so aus:

s2:=val(z,s2);

Ich vermute, dass das Problem beim Compiler oder an einer Unit liegt, jedoch hab ich keine Ahnung, wie ich es beheben könnte. Kann mir jemand helfen? Danke schonmal!

Hallo,

in Delphi ist val eine Prozedur:
Val (String, var Integervariable, var Integercode)
String ist klar, in Integervariable landet das Ergebnis und in Integercode ein Fehlercode.

Gruss Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Horst,

in Delphi ist val eine Prozedur:
Val (String, var Integervariable, var Integercode)
String ist klar, in Integervariable landet das Ergebnis und in
Integercode ein Fehlercode.

Reinhard hat zwar von Delphi geschrieben, aber er hat recht, in Turbo-Pascal ist val auch eine Prozedur, gibt also keinen Wert zurück. Benutze val also ungefähr so:

var x, fehler : integer;
 s : string;

begin
 readln(s);
 val(s, x, fehler);
 if fehler 0 then
 writeln('Fehler an Position ', fehler);
 else
 writeln('Wert: ', x);
end.

Das Beispiel ist übrigens von hier, da kannst Du prima über Turbo Pascal nachschlagen:
http://www.webplain.de/turbopascal/turbopascal.php

Viele Grüsse
Klaus Bernstein

Dankeschön, es funktioniert! Aber hier (http://www.hadels.com/programmit/TP5.html) hab ich das Falsche gelesen…

Naja auf jeden Fall vielen Dank nochmals, das Problem ist gelöst.