[文字列を分割する]

文字列を、指定された区切り文字で分割し、StringListに格納します。

ある文字をセパレータとして、文字列を分解したいことはよくありますが、DelphiではStringListを用います。
セパレータをDelimiterプロパティに、分解対象の文字列をDelimitedTextに設定します。
(注意)DelimitedTextを設定する前に、Delimiterを設定しておく必要があります。
結果は、Stringsプロパティに、その個数はCountプロパティにそれぞれ返ります。
コンマで区切る場合は、CommaTextプロパティに分解対象の文字列を設定します。この場合、Delimiterの指定は不要です。

【ソースコード】 [tips0024.pas]
program tips0024;
{$APPTYPE CONSOLE}
uses SysUtils,Classes;
var
 sl:TStringList;
 i:Integer;
begin
 sl:=TStringList.Create;

 sl.commaText:= 'Hello,Delphi,World';
 WriteLn('「' ,sl.commaText,'」をカンマで区切って出力すると');
 For i:= 0 To sl.Count-1 do
    WriteLn(' フィールド', i+1,': ' ,sl.Strings[i]);

 sl.Delimiter:= '\';
 sl.DelimitedText:= 'C:\Windows\System32\Kernel32.dll';
 WriteLn('「' ,sl.DelimitedText,'」を\で区切って出力すると');
 For i:= 0 To sl.Count-1 do
    WriteLn(' フィールド', i+1,': ' ,sl.Strings[i]);
 sl.Free;
end.
【コンパイル&実行】 [tips0024.bat]
dcc32 tips0024.pas 
tips0024.exe  > tips0024.txt
pause
【実行結果】 [tips0024.txt]
「Hello,Delphi,World」をカンマで区切って出力すると
 フィールド1: Hello
 フィールド2: Delphi
 フィールド3: World
「C:\Windows\System32\Kernel32.dll」を\で区切って出力すると
 フィールド1: C:
 フィールド2: Windows
 フィールド3: System32
 フィールド4: Kernel32.dll