線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1393
推到 Plurk!
推到 Facebook!

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

 
eoisoft
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-30 19:32:40 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
系統時間:2024-05-17 21:10:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!