文字列をタブで分割し、一番前の部分を取得しようとしていますが、うまくいかずスペースで分割されてしまいます。
どこか間違っているのでしょうか?
function TForm1.takeString(St: String): String;
var
sl:TStringList;
i:Integer;
begin
sl:=TStringList.Create;
sl.Delimiter:= #$9;
sl.DelimitedText:= St;
Result := sl.Strings[0];
sl.Free;
end;
StrictDelimiterを見てください
http://docs.embarcadero.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate4/JA/html/delphivclwin32/Classes_TStrings_StrictDelimiter.html
すばやい回答ありがとうございます。
sl.StrictDelimiter := true;
としてみたのですが、エラー(赤い波線)が出ます。
Delphi2005なのでもしかしたら対応していないのかと思って調べてみたのですが...よくわかりません。
http://www.watercolor-city.net/blog/sb.cgi?eid=27
ここの中ほどをご覧あれ。2006からです。
>ここの中ほどをご覧あれ。2006からです。
ありがとうございます。
ということは、スペースをいったん他の文字に変換するぐらいしかないということでしょうか?
>文字列をタブで分割し、一番前の部分を取得しようとしていますが
なら
function Take(Text:String; Delimiter: String = #8): String;
begin
Result := Copy(Text,1,Pos(Delimiter,Text)-1);
end;
でいいんじゃないか?
>function Take(Text:String; Delimiter: String = #8): String;
#8→#9ですね。
うまくいきました。
皆さん、ありがとうございます。
ごめんなさい。
解決時のチェック忘れていました。
ツイート | ![]() |