System.Val

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

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

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 V eine Variable mit dem Typ Integer (Integer, Int64, etc.) ist, dann müssen in S alle Zeichen Ziffern sein. Dezimal- oder Tausendertrennzeichen werden nicht unterstützt.</br>
  • Wenn V eine Variable mit dem Typ Real (Single, Double, etc.) ist, dann kann S, 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


Codebeispiele