1. ホーム
  2. delphi

[解決済み] 文字列をデリミタに基づき文字列の配列に分割する。

2023-04-10 18:54:47

質問

入力文字列をデリミターに基づいて文字列の配列に分割するDelphiの関数を探しています。私はウェブを検索して多くのものを見つけましたが、すべて独自の問題があるようで、私はそれらのどれかを動作させることができませんでした。

のような文字列を分割したいだけなんですが。 "word:doc,txt,docx" のような文字列を、':' に基づいて配列に分割する必要があります。結果は次のようになります。 ['word', 'doc,txt,docx'] . どうすればいいのでしょうか?

どのように解決するのですか?

TStrings.DelimitedTextプロパティを使って、文字列を分割することができます。

このサンプルを見てください。

program Project28;

{$APPTYPE CONSOLE}

uses
  Classes,
  SysUtils;

procedure Split(Delimiter: Char; Str: string; ListOfStrings: TStrings) ;
begin
   ListOfStrings.Clear;
   ListOfStrings.Delimiter       := Delimiter;
   ListOfStrings.StrictDelimiter := True; // Requires D2006 or newer.
   ListOfStrings.DelimitedText   := Str;
end;


var
   OutPutList: TStringList;
begin
   OutPutList := TStringList.Create;
   try
     Split(':', 'word:doc,txt,docx', OutPutList) ;
     Writeln(OutPutList.Text);
     Readln;
   finally
     OutPutList.Free;
   end;
end.

アップデイト

こちらをご覧ください リンク の説明のために StrictDelimiter .