全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:911
推到 Plurk!
推到 Facebook!

使用splitEx时出现错误返回值,请指教.

尚未結案
eoisoft
一般會員


發表:20
回覆:12
積分:6
註冊:2004-11-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-29 20:49:12 IP:218.6.xxx.xxx 未訂閱
SPLITEX代码: [CODE] function SplitEx(const Str, Delimiters: string): TStringList; var ss: WideString; i, St: integer; function IsDelimiter(const Delimiters, c: string): Boolean; begin //判断是否为拆分关键字 result := StrScan(PChar(Delimiters), c[1]) <> nil; end; begin Result := TStringList.Create; with Result do begin Clear; Sorted := True; Duplicates := dupIgnore; end; if Length(Str) < 1 then exit; ss := Str; //双字符支持,纯英文可以去掉 St := -1; for i := 1 to Length(ss) do if IsDelimiter(Delimiters, ss[i]) then if St <> -1 then begin if not(Trim(Copy(ss, St 1, i - St-1))='') then begin Result.Add(Trim(Copy(ss, St 1, i-St-1))); end; St := -1; end else if St = -1 then St := i; if St <> -1 then Result.Add(Copy(ss, St 1, Length(Str)-1)); end; [CODE] 要取的字符为: |||a|||b|||c|||d|||e 我的用法如下: ListBox3.Items:=SplitEx(ADOQuery1.fieldbyname('t15').AsString, '|||'); 其返回值为: a c e 这是为什么? 正确的返回值应是: a b c d e
chris_shieh
高階會員


發表:46
回覆:308
積分:240
註冊:2004-04-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-31 12:16:44 IP:218.167.xxx.xxx 未訂閱
請參考 拙作 "多字元的字串分割函式MultiSpilt" http://delphi.ktop.com.tw/forum.asp?FORUM_ID=79 發表人 - chris_shieh 於 2005/01/31 12:30:41
系統時間:2024-05-01 10:02:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!