これを行うにはいくつかの方法があります。スペース文字で文字列を分割し、それを TStringList に入れることができます。その後、TStringList の Value[String] プロパティを使用して、指定された名前の値を取得できます。
これを行うには、すべてのスペースをカンマで文字列置換します。
newString := StringReplace(oldString, ' ', ',', [rfReplaceAll]);
次に、結果を TStringList にインポートします。
var
MyStringList : TStringList;
begin
MyStringList := TStringList.Create;
try
MyStringList.CommaText := StringReplace(oldString, ' ', ',', [rfReplaceAll]);
Result := MyStringList.Values['email'];
finally
MyStringList.Free;
end;
end;
これにより、メールの値が得られます。次に、"@" 記号で文字列を分割する必要がありますが、これは比較的簡単な作業です。もちろん、これはスペースが本当にフィールド間の区切り文字である場合にのみ機能します。
または、正規表現を使用することもできますが、Delphi はそれらをネイティブにサポートしていません (正規表現ライブラリが必要です -こちらを参照してください) 。
*** Smasher は (D2006+) Delimiter / Delimited text を次のように指摘しました:
MyStringList.Delimiter := ' ';
MyStringList.DelimitedText := oldString;
Result := MyStringList.Values['email'];