文字列型を数値型や日付時刻型に変換(StrToInt,StrToIntDef,StrToFloat,StrToDateTime関数) ~Delphiソースコード集
Delphiには文字列を数値型や日付型に変換する関数があります。
整数値変換
関数 | 説明 |
---|---|
StrToInt(文字列:String):Integer | 文字列を整数値に変換して返す。有効な文字列でない場合はエラーになる。 |
StrToIntDef(文字列:String, デフォルト値:Integer):Integer | 文字列を整数値に変換して返す。有効な文字列でない場合はデフォルト値を返す。 |
StrToUInt(文字列:String):Cardinal | 文字列を正の整数値に変換して返す。有効な文字列でない場合はエラーになる。 |
StrToUIntDef(文字列:String, デフォルト値:Cardinal):Cardinal | 文字列を正の整数値に変換して返す。有効な文字列でない場合はデフォルト値を返す。 |
StrToInt64(文字列:String):Int64 | 文字列を整数値に変換して返す。有効な文字列でない場合はエラーになる。 |
StrToInt64Def(文字列:String, デフォルト値:Int64):Int64 | 文字列を整数値に変換して返す。有効な文字列でない場合はデフォルト値を返す。 |
StrToUInt64(文字列:String):UInt64 | 文字列を正の整数値に変換して返す。有効な文字列でない場合はエラーになる。 |
StrToUInt64Def(文字列:String, デフォルト値:UInt64):UInt64 | 文字列を正の整数値に変換して返す。有効な文字列でない場合はデフォルト値を返す。 |
ブール値変換
関数 | 説明 |
---|---|
StrToBool(文字列:String):Boolean | 文字列をブール値に変換して返す。文字列が数値のみの場合、0以外はTrueを返し、0はFalseを返す。有効な文字列でない場合はエラーになる。 |
StrToBoolDef(文字列:String, デフォルト値):Boolean | 文字列をブール値に変換して返す。文字列が数値のみの場合、0以外はTrueを返し、0はFalseを返す。有効な文字列でない場合はデフォルト値を返す。 |
小数値変換
関数 | 説明 |
---|---|
StrToFloat(文字列):Extended | 文字列を小数値に変換して返す。有効な文字列でない場合はエラーになる。 |
StrToFloatDef(文字列:String, デフォルト値:Extended):Extended | 文字列を小数値に変換して返す。有効な文字列でない場合はデフォルト値を返す。 |
通貨値変換
関数 | 説明 |
---|---|
StrToCurr(文字列:String):Currency | 文字列を通貨値に変換して返す。有効な文字列でない場合はエラーになる。 |
StrToCurrDef(文字列:String, デフォルト値:Currency):Currency | 文字列を通貨値に変換して返す。有効な文字列でない場合はデフォルト値を返す。 |
日付時刻値変換
関数 | 説明 |
---|---|
StrToDate(日付文字列:String):TDateTime | 日付文字列を日付値に変換して返す。有効な文字列でない場合はエラーになる。 |
StrToDateDef(日付文字列:String, デフォルト値:TDateTime):TDateTime | 日付文字列を日付値に変換して返す。有効な文字列でない場合はデフォルト値を返す。 |
StrToTime(時刻文字列:String):TDateTime | 時刻文字列を時刻値に変換して返す。有効な文字列でない場合はエラーになる。 |
StrToTimeDef(時刻文字列:String, デフォルト値:TDateTime):TDateTime | 時刻文字列を時刻値に変換して返す。有効な文字列でない場合はデフォルト値を返す。 |
StrToDateTime(日時文字列:String):TDateTime | 日時文字列を日付時刻値に変換して返す。有効な文字列でない場合はエラーになる。 |
StrToDateTimeDef(日時文字列:String, デフォルト値:TDateTime):TDateTime | 日時文字列を日付時刻値に変換して返す。有効な文字列でない場合はデフォルト値を返す。 |
整数値変換
StrToInt関数
文字列を整数値に変換して返す。有効な文字列でない場合はエラーになる。
StrToInt(書式文字列)
例1
procedure TForm1.Button1Click(Sender: TObject);
var i:Integer;
begin
i:=StrToInt('24');
ShowMessage(i.ToString);
end;
// 24が表示される
例2
procedure TForm1.Button1Click(Sender: TObject);
var i:Integer;
begin
i:=StrToInt('24.4');
ShowMessage(i.ToString);
end;
// エラーになる
例3
procedure TForm1.Button1Click(Sender: TObject);
var i:Integer;
begin
i:=StrToInt('-24');
ShowMessage(i.ToString);
end;
// -24が表示される
StrToIntDe関数
文字列を整数値に変換して返す。有効な文字列でない場合はデフォルト値を返す。
StrToIntDef(文字列, デフォルト値)
例1
procedure TForm1.Button1Click(Sender: TObject);
var i:Integer;
begin
i:=StrToIntDef('24', 0);
ShowMessage(i.ToString);
end;
// 24が表示される
例2
procedure TForm1.Button1Click(Sender: TObject);
var i:Integer;
begin
i:=StrToIntDef('24.0', 0);
ShowMessage(i.ToString);
end;
// 0が表示される
例3
procedure TForm1.Button1Click(Sender: TObject);
var i:Integer;
begin
i:=StrToIntDef('24a', 0);
ShowMessage(i.ToString);
end;
// 0が表示される
ブール値変換
StrToBool関数
文字列をブール値に変換して返す。文字列が数値のみの場合、0以外はTrueを返し、0はFalseを返す。有効な文字列でない場合はエラーになる。
StrToInt(書式文字列)
例1
procedure TForm1.Button1Click(Sender: TObject);
var b:Boolan;
begin
i:=StrToInt('True');
ShowMessage(i.ToString);
end;
// -1が表示される
例2
procedure TForm1.Button1Click(Sender: TObject);
var b:Boolan;
begin
i:=StrToInt('false');
ShowMessage(i.ToString);
end;
// 0が表示される
例3
procedure TForm1.Button1Click(Sender: TObject);
var b:Boolan;
begin
i:=StrToInt('truefalse');
ShowMessage(i.ToString);
end;
// エラーになる
例4
procedure TForm1.Button1Click(Sender: TObject);
var b:Boolan;
begin
i:=StrToInt('0000');
ShowMessage(i.ToString);
end;
// 0が表示される
日付時刻値変換
StrToDate関数
(日付のみ)文字列を日付時刻値に変換して返す。有効な文字列でない場合はエラーになる。
StrToDate(日付文字列)
例1
procedure TForm1.Button1Click(Sender: TObject);
var d:TDateTime;
begin
d:=StrToDate('2025/02/28');
ShowMessage(FormatDateTime('yyyy/mm/dd', d));
end;
// 2025/02/28が表示される
例2
procedure TForm1.Button1Click(Sender: TObject);
var d:TDateTime;
begin
d:=StrToDate('2025/02/29');
ShowMessage(FormatDateTime('yyyy/mm/dd', d));
end;
// エラーになる
例3
procedure TForm1.Button1Click(Sender: TObject);
var d:TDateTime;
begin
d:=StrToDate('2025/02/01 11:01:01');
ShowMessage(FormatDateTime('yyyy/mm/dd', d));
end;
// エラーになる
StrToTime関数
(時刻のみ)文字列を日付時刻値に変換して返す。有効な文字列でない場合はエラーになる。
StrToTime(時刻文字列)
例1
procedure TForm1.Button1Click(Sender: TObject);
var d:TDateTime;
begin
d:=StrToTime('23:59:59');
ShowMessage(FormatDateTime('yyyy/mm/dd hh:nn:ss', d));
end;
// 1899/12/30 23:59:59が表示される
例2
procedure TForm1.Button1Click(Sender: TObject);
var d:TDateTime;
begin
d:=StrToTime('2025/01/01 23:59:59');
ShowMessage(FormatDateTime('yyyy/mm/dd hh:nn:ss', d));
end;
// エラーになる
StrToDateTime関数
(日時)文字列を日付時刻値に変換して返す。有効な文字列でない場合はエラーになる。
StrToDateTime(日時文字列)
例1
procedure TForm1.Button1Click(Sender: TObject);
var d:TDateTime;
begin
d:=StrToDateTime('2025/02/28 23:59:59');
ShowMessage(FormatDateTime('yyyy/mm/dd hh:nn:ss', d));
end;
// 2025/02/28 23:59:59が表示される
例2
procedure TForm1.Button1Click(Sender: TObject);
var d:TDateTime;
begin
d:=StrToDateTime('2025/02/28');
ShowMessage(FormatDateTime('yyyy/mm/dd hh:nn:ss', d));
end;
// 2025/02/28 00:00:00が表示される
例3
procedure TForm1.Button1Click(Sender: TObject);
var d:TDateTime;
begin
d:=StrToDateTime('23:59:59');
ShowMessage(FormatDateTime('yyyy/mm/dd hh:nn:ss', d));
end;
// 1899/12/30 23:59:59が表示される