Autor Beitrag
Hazer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54

Win XP Pro SP2
Turbo Delphi 2006
BeitragVerfasst: Mi 16.03.05 08:32 
hi, ich habe ein Problem mit der VAL Funktion.
Immer wenn ich sie einsetze, kommt ne fehlermeldung, die sagt 'Incompatible Types'
Ich kann das einfach nicht verstehen hier der Code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
program aufgabe;
{$APPTYPE CONSOLE}
uses
  SysUtils;
var
  s,c:string;
  i:integer;
begin
  write('-----Geben Sie nun ein ASCII-Dezimalcode ein und trennen Sie die Zeichen mit einem ; ');
  readln(s);
  repeat
      i:=pos(';',s);
      c:=copy(s,1,i);
      delete(c,i-1,i);
      val(c,i,0); //Hier kommt die Fehlermeldung
      write(chr(i));
      delete(s,0,pos(';',s));
  until length(s) = 0;
  readln;
end.


Echt schon alles versucht ;(
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Mi 16.03.05 08:42 
Klar, weilm der letzte Parameter von Val eine Variable sein muss. Zwecks Werte, die diese annehmen kann, schau bitte in der Onlinehilfe nach

AXMD
wdbee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Mi 16.03.05 08:43 
Du muss eine Variable übergeben, keine Konstante, denn es ist ein var-Parameter.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
program Project1;
{$APPTYPE CONSOLE}
uses sysutils;

var
  s,c:string;
  i:integer;
  code: integer;
begin
  write('-----Geben Sie nun ein ASCII-Dezimalcode ein und trennen Sie die Zeichen mit einem ; ');
  readln(s);
  repeat
      i:=pos(';',s);
      c:=copy(s,1,i);
      delete(c,i-1,i);
      val(c,i,code); //Hier kommt keine Fehlermeldung mehr
      write(chr(i));
      delete(s,0,pos(';',s));
  until length(s) = 0;
  readln;
end.

Aber ob das Programm sonst richtig ist habe ich nicht geprüft!
Hazer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54

Win XP Pro SP2
Turbo Delphi 2006
BeitragVerfasst: Do 17.03.05 08:21 
danke funtzt jetzt ;)

Nur noch eine Frage:

Was macht denn CODE?
Bei delphi-surce und so kann ich nichts finden :(
wdbee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Do 17.03.05 08:29 
Warum denn einfach, wenn es auch kompliziert geht? Oder was?
Was sucht du im Internet, wenn die Antwort nur einen (F1-)Tastendruck weit weg ist?

Delphi-Hilfe: zu Val (Prozedur)

Val konvertiert einen String in seine numerische Entsprechung.

Unit
System

Kategorie
String-Verarbeitung

procedure Val(S; var V; var Code: Integer);

Beschreibung
Val konvertiert den mit S angegebenen String in einen numerischen Wert, der dem Ergebnis einer Leseoperation mit Read aus einer Textdatei entspricht.
S ist ein String-Ausdruck und muß einer vorzeichenbehafteten reellen Zahl entsprechen.
V ist eine Gleitkomma- oder Integer-Variable. Wenn V eine Variable des Typs Integerist, muß S eine ganze zahl ergeben.
Code ist eine Variable des Typs Integer.

Ist der String ungültig, wird der Index des betreffenden Zeichens im Parameter Code gespeichert. Andernfalls wird Code der Wert Null zugewiesen. Bei einem nullterminierten String ist die in Code zurückgegebene Fehlerposition um eins größer als der auf Null basierende Index des Zeichens.

Die von Val durchgeführte Bereichsprüfung ist von der Einstellung des Compiler-Schalters $R und vom Typ des Parameters V abhängig.

Einstellung Ergebnis
{$R+} Eine Bereichsüberschreitung führt immer zu einem Laufzeitfehler.
{$R-} Die Bereichswerte sind vom Datentyp des Parameters V abhängig.
Hazer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54

Win XP Pro SP2
Turbo Delphi 2006
BeitragVerfasst: Do 17.03.05 10:36 
o.0?
Da stehen ja alle Funktionen :shock:

Danke :oops: