2009-05-11

【Delphi】split 分割字串

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


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

沒有留言:

張貼留言