[Delphi]小ネタ備忘録






トップページへ

※あくまでも個人の意見です。ですので、正解とはいえません。

 

Q. Unix系のJan,Febといった文字列を1月,2月といった月数字に変換したい

var
    mont: TStringList;
    i_mm: Integer;


    //月文字→数値変換
    mont := TStringList.Create;
  try
    mont.CommaText := 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec';
    i_mm := mont.IndexOf(w_mm) +1;
  finally
    mont.Free;
  end;
    //月文字→数値変換


 

TStrings系

Assign = AddStrings

速度はAddStringsが早い可能性

 

Add = Append

個人的には Add の方が好み。

ちなみにAddの中身は

例 .Insert(ST.Count, S)

*Sは文字列

 

サンプル TStringListの.CommaTextの使用例

したかった事。

 

.CommaTextにセットした文字列から、特定の項目だけを引用したい。Copy関数よりラクに処理をしたい。

 

概要

・タブ区切りの文字列を.CommaTextプロパティにセット

・Showmessageで表示する

・セットした文字列から特定の項目をShowmessageで表示

procedure TF_MAIN.Button1Click(Sender: TObject);
var
  w_values:TStrings;
begin

    w_values := TStringList.Create;
  try
    w_values.CommaText := '2023/10/13	07:34	択捉島南東沖	5.0	震度1	2023/10/13 07:40';

    showmessage( w_values.CommaText );
    showmessage( w_values.Strings[2] );

  finally
    w_values.Free;
  end;

end;か

解説

・.CommaTextにタブで区切れた文字列’2023/10/13 07:34 択捉島南東沖 5.0 震度1 2023/10/13 07:40’をセット

・Showmessageで表示するとカンマ区切りに自動変換されています。

TStringList.CommaTextの使用例。タブ区切りの文字列をセットすると、カンマ区切りの文字列に自動変換されます

実行例

2023/10/13,07:34,択捉島南東沖,5.0,震度1,2023/10/13,07:40

 

・.Strings[2]で指定すると3番目の項目を表示(引用)できます。

TStringList.CommaTextの使用例。.Strings[2]と指定すれば3番目の項目を引用することが可能です






関連記事
[Delphi] 個人的 逆引き関数リファレンス

[Delphi]MySQLへの接続で失敗(未解決)

[Delphi] Indyのエラー関連

[Delphi] Indyをバージョンアップする

[DELPHI] フォームにプロパティを追加する