2009-05-11

【Delphi】split 分割字串

在 form1 上放置一個 button, 和一個 memo
Button1OnClick 寫入
 
procedure TForm1.Button1Click(Sender: TObject);
var
    str: string;
    a: TStringList;
    x: integer;
begin
    str := 'This,is,a,b o o k';
    a := TStringList.Create;
    a.StrictDelimiter := true;    // Delphi7 沒有這個屬性 :~(
    a.Delimiter := ',';           // 指定逗點為分割字元
    a.DelimitedText := str;       // 要被分割的字串
    Memo1.Clear;
    for x:=0 to (a.Count-1) do
        Memo1.Lines.Add(a[x]);
end;
 


要注意若是 a.StrictDelimiter 這個屬性設為 false,則空白字元也會當成分割字元,以上述的 str 字串而言,當 a.StrictDelimiter := false; 則字串將被分割成 This-is-a-b-o-o-k (連字號只是為說明方便,實際並不會顯示);而 Delphi 7 因為是較早期的版本,目前測試得到的結論是會連帶將空白也分割,等於 a.StrictDelimiter := false,好像也沒解決方法,只能轉個彎,先將空白轉成其他在您程式不會(或較少) 用到的字元(例如:將半形空白轉成全形空白),分割好後,再轉回空白了。

沒有留言:

張貼留言