Migaro. 技術Tips

                       

ミガロ. 製品の技術情報
IBMiの活用に役立つ情報を掲載!


【Delphi】CommaTextとDelimitedText

今回はTStrings(TStringList等)の
CommaTextの活用術についてご紹介いたします。

CSV取込を行う際などにカンマ区切り文字列の取得で重宝するCommaTextですが、

  • 「ダブルクォーテーションで囲まないと半角スペースでも区切られる」
  • 「カンマ以外の文字でも区切りたい」

といったお悩みはございませんでしょうか。

 

<半角スペースで区切らせない方法>

DelphiのTStringsでCommaTextを使用する場合、
ダブルクォーテーションで囲まれない半角スペースおよびカンマは
デフォルトで区切り文字と見なされます。

TStringsのStrictDelimiterプロパティをTrueに設定することで、
カンマ以外の文字で区切らないように指定できます。

文字列が区切られる/区切られないイメージ

 

<カンマ以外の任意の文字で区切らせる方法>

また、タブ文字などカンマ以外の文字を区切り文字に設定したい場合は
同じTStringsのDelimitedTextを使用します。

DelimitedTextでは、
Delimiterプロパティで指定した任意の1文字を区切り文字として扱います。
(タブ区切りの場合はタブ文字を示す『#9』を指定します。)

こちらもCommaTextと同様、StrictDelimiterがFalseになっていると、
ダブルクォーテーションで囲まれない半角スペースでも区切られます。
StrictDelimiterがTrueなら、Delimiterの文字のみで区切られます。

 

今回紹介した各プロパティはTStringsが持っているプロパティなので、
それを継承しているクラスやプロパティであれば、TStringList以外にも、
TMemo.LinesTComboBox.Itemsなどの箇所でもそれぞれ利用可能です。

 

 

(ミガロ.情報マガジン「MIGARO News!!」Vol.222 2019年10月号より)