System.Val
Delphi
procedure Val(S: String; var V; var Code: Integer);
プロパティ
| 種類 | 可視性 | ソース | ユニット | 親 |
|---|---|---|---|---|
| procedure | public | System.pas | System | System |
説明
整数(10 進数または 16 進数)を表す文字列を数値に変換します。
Delphi コードでは、 Val は文字列値 S を、Read でテキスト ファイルから読み取ったかのように、その数値表現に変換します。$1234 と 0x1234 は、サポートされている16 進数表記です。
S は文字列型の式で、符号付き実数を構成する文字シーケンスでなければなりません("1"、"-2"、または "+3" など)。
V は整数型または実数型の変数になり得ます。 </br>
Vが整数型(整数、Int64、など)の変数の場合、Sでは、すべての文字は数字でなければなりません。小数点や千単位の区切りはサポートされていません。</br>Vが実数型(Single、Double など)の変数である場合、S文字列には小数点または千単位の区切り記号を含めることができます。
Code は Integer 型の変数です。
文字列が無効な場合、問題となる文字のインデックスが Code に格納され、そうでない場合、Code はゼロに設定されます。 NULL で終わる文字列の場合、Code で返されるエラー発生位置は、誤りのある文字の実際のインデックス(0 から始まるもの)よりも 1 大きくなります。
例
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;
関連項目