System.Val
Delphi
procedure Val(S: String; var V; var Code: Integer);
Inhaltsverzeichnis
Eigenschaften
| Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
|---|---|---|---|---|
| procedure | public | System.pas | System | System |
Beschreibung
Konvertiert einen String, der einen Integerwert repräsentiert (in dezimaler oder hexadezimaler Notation), in eine Zahl.
Im Delphi-Code konvertiert Val den in S angegebenen String in einen numerischen Wert, der dem Ergebnis einer Leseoperation mit Read aus einer Textdatei entspricht. Beide hexadezimalen Notationen, $1234 und 0x1234, werden unterstützt.
S ist ein String-Ausdruck und muss eine vorzeichenbehaftete reelle Zahl sein, wie "1", "-2" oder "+3".
V kann eine Variable vom Typ Integer oder Real sein. </br>
- Wenn
Veine Variable mit dem Typ Integer (Integer, Int64, etc.) ist, dann müssen inSalle Zeichen Ziffern sein. Dezimal- oder Tausendertrennzeichen werden nicht unterstützt.</br> - Wenn
Veine Variable mit dem Typ Real (Single, Double, etc.) ist, dann kannS, der String, Dezimal- oder Tausendertrennzeichen enthalten.
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.
Beispiel
procedure Test_Val;
var
LFval: Double;
LIVal: Integer;
LCode: Integer;
begin
// Using integral type
Val('1234', LIVal, LCode); // Valid
if LCode = 0 then
WriteLn('LIVal = ', LIVal);
Val('123.456', LIVal, LCode); // Not valid
if LCode <> 0 then
WriteLn('LCode = ', LCode);
// Using floating type
Val('1234', LFVal, LCode); // Valid
if LCode = 0 then
WriteLn('LFVal = ', LFVal);
Val('123.456', LFVal, LCode); // Valid
if LCode = 0 then
WriteLn('LFVal = ', LFVal);
end;
Siehe auch