[文字列を分割する]
文字列を、指定された区切り文字で分割し、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
Copyright c 2009, ohishi,All rights reserved.