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

拆 開 字 串

尚未結案
vernon
一般會員


發表:27
回覆:26
積分:10
註冊:2003-05-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-27 15:21:10 IP:202.175.xxx.xxx 未訂閱
請問如何把字串拆開 ? s:='abc,bbb,ccc,aaa,add,ddc'; 以上字串如何把它分開為 : abc bbb ccc aaa add ddc 麻煩各位高手解答~~~
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-27 15:53:09 IP:140.135.xxx.xxx 未訂閱
vernon您好: 可以利用TStringList的CommaText 的屬性 BCB的方式如下
 AnsiString test = "abc,bbb,ccc,aaa,add,ddc";
 TStringList* SL = new TStringList();
 SL->CommaText = test;
 for (int i=0; iCount ;i  )
   ShowMessage(SL->Strings[i]);
 delete SL;
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
qoo1234
版主


發表:256
回覆:1167
積分:659
註冊:2003-02-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-27 16:30:37 IP:218.163.xxx.xxx 未訂閱
procedure TForm1.Button1Click(Sender: TObject);
var Str:String;
    SL:TStringList;
begin
 Str:='abc,bbb,ccc,aaa,add,ddc';
 SL:=TStringList.Create;
 SL.CommaText:=Str;
 ShowMessage(SL.Text);
 SL.Free;
end; 
網海無涯,學無止境!
vernon
一般會員


發表:27
回覆:26
積分:10
註冊:2003-05-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-27 17:20:22 IP:202.175.xxx.xxx 未訂閱
我想問 TStringList 是什麼來 ?
qoo1234
版主


發表:256
回覆:1167
積分:659
註冊:2003-02-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-27 18:16:04 IP:218.163.xxx.xxx 未訂閱
引言: 我想問 TStringList 是什麼來 ?
請參考Classes單元 網海無涯,學無止境!
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-28 01:00:49 IP:61.71.xxx.xxx 未訂閱
引言: 請問如何把字串拆開 ? s:='abc,bbb,ccc,aaa,add,ddc'; 以上字串如何把它分開為 : abc bbb ccc aaa add ddc 麻煩各位高手解答~~~
給你一支程式研究看看
function TSysUT.getaryStr(var AryList: Array of string;        mString: string): boolean;
        var xpos: string;
            xFind: integer;
            i: integer;
begin
     xpos:= '';
     xfind:= -1;
     result:= True;
     i:= 0;
     while xfind <> 0 do
     try
        xfind:= pos(',',mString);
        if xfind = 0 then break;
        xpos:= copy(mString,1,xfind-1);
        AryList[i]:= xpos;
        Delete(mString,1,length(xpos) 1);
        inc(i);
     except
        on E: Exception do begin
           result:= False;
           Break;
        end;
     end;
end;    
用法 myAry:= array[0..3] of string; myStr:= 'AAA,BBB,CCC,DDD' getaryStr(myAry,myStr); 你就可以發現自動將四組字串分給四個陣列 其他你就再發揮創意來運用吧!
adonis
高階會員


發表:140
回覆:258
積分:159
註冊:2002-04-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-02-29 13:38:16 IP:61.62.xxx.xxx 未訂閱
vernon, 你好    可試試下述作法:
s:='abc,bbb,ccc,aaa,add,ddc';
s1 := Trim(Copy(s, 0, Pos(',', s)-1));
Delete(s, 1, Pos(',', s));
s2 := Trim(Copy(s, 0, Pos(',', s)-1));
Delete(s, 1, Pos(',', s));
s3 := Trim(Copy(s, 0, Pos(',', s)-1));
Delete(s, 1, Pos(',', s));   
 . 
 .
 .
s6 := Trim(s6);    如此可得
s1=abc
s2=bbb
s3=ccc
s4=aaa
s5=add
s6=ddc    Trim 是用來清空不要的空白字元,也就是說 s:='  abc' 經過 Trim(s) 之後 s='abc'
我也在努力學習中 ^^
------
我也在努力學習中,若有錯謬請見諒。
Rain
資深會員


發表:31
回覆:236
積分:268
註冊:2003-02-17

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-03-09 10:32:02 IP:220.160.xxx.xxx 未訂閱
事實上拆分字串在Delphi中有個內部函數ExtractStrings直接可以用, 例如, ExtractStrings([','], [' '], 'abc,bbb,ccc,aaa,add,ddc', ListBox1.Items);     青青子衿、悠悠我心。 但為君故、沉吟至今!
系統時間:2024-06-26 8:03:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!