次の形式の行としてアプリケーションに到着するテキスト ファイルがあります。
<row amount="192.00" store="10" transaction_date="2009-10-22T12:08:49.640" comp_name="何とか" comp_ref="C65551253E7A4589A54D7CCD468D8AFA" name="アクリントン "/>
そして、この「行」を、指定された TStringList 内の一連の名前/値のペアに変換したいと思います (ファイル内にこれらの<row>が数十個存在する可能性があるため、最終的には、それぞれを分割してファイルを反復処理する必要があります)。名前/値のペアに順番に行)。
私が抱えている問題は、データが明らかに区切られていないことです(技術的には、スペースで区切られていると思います)。一部の値に先頭または末尾のスペースが含まれていない場合は、いくつかの合理的な仮定を立てて、スペースに基づいて行を分割するコードを作成できたはずです。しかし、値自体にスペースが含まれる場合と含まれない場合があるため、これを行う明確な方法がわかりません。Delphi の TStringList.CommaText は役に立たず、Delimiter をいじってみましたが、毎回値内のスペースに引っかかってしまいます。
上記のサンプルをこれに似たものに変えるための巧妙な Delphi テクニックを持っている人はいますか? ;
amount="192.00" ストア="10" transaction_date="2009-10-22T12:08:49.640" comp_name="何とか" comp_ref="C65551253E7A4589A54D7CCD468D8AFA" name="アクリントン"
残念ながら、この種の場合によくあることですが、最初からデータの形式を制御することはできません。たとえば、元に戻ってソースでカンマ区切りにすることはできません。おそらく、コードをコンマ区切りに変換するコードを書くことができると思いますが、私が持っているものを操作するための良い方法を見つけたいと思います。
違いがある場合、これは Delphi 2007 になります。