トップへ(mam-mam.net/)

文字列型を数値型や日付時刻型に変換(StrToInt,StrToIntDef,StrToFloat,StrToDateTime関数) ~Delphiソースコード集

文字列型を数値型や日付時刻型に変換(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が表示される