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

分隔字元-續

答題得分者是:nlj859
benson5033
一般會員


發表:44
回覆:47
積分:18
註冊:2004-08-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-27 10:20:05 IP:210.62.xxx.xxx 未訂閱
如果字串裏含有空白、tab、逗號,而我只要把含有tab的分隔出來,那該怎麼辦呢??? 我試過它會把空白、tab、逗號,全部分隔開來。
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-27 12:28:30 IP:219.80.xxx.xxx 未訂閱
Hello bemson5033,    請參考底下程式碼: 先以分號代替tab
        AnsiString strGet;
        AnsiString str="12 34,56;78,90,1112;1314 1111,123,412 234 234;34 345;3457;2345";
        int indexSpace,indexComma,indexSemicolon,lenStr;            indexSpace=str.Pos(" ");
        indexComma=str.Pos(",");
        indexSemicolon=str.Pos(";");
        lenStr=str.Length();            while (indexSemicolon!=0)
           {
            if (indexComma>indexSpace)
                strGet=MidStr(str,indexComma 1,indexSemicolon-indexComma-1);
            else
                strGet=MidStr(str,indexSpace 1,indexSemicolon-indexSpace-1);
            Memo1->Lines->Add(strGet);                              //於Memo秀出找到的字串
            str=MidStr(str,indexSemicolon 1,lenStr-indexSemicolon); //新的str
            lenStr=str.Length();                                    //新的字串長度                indexSemicolon=str.Pos(";");                AnsiString tmepStr=MidStr(str,1,indexSemicolon-1);                indexSpace=tmepStr.LastDelimiter(" ");  //找出tempStr最後的Space
            indexComma=tmepStr.LastDelimiter(",");  //找出tempStr最後的逗號
           }
再以8個空格代表tab
        AnsiString strGet;
        AnsiString str="12 34,56        78,90,1112        1314 1111,123,412 234 234        34 345        3457        2345";
        int indexSpace,indexComma,indexSemicolon,lenStr;            indexSpace=str.Pos(" ");
        indexComma=str.Pos(",");
        indexSemicolon=str.Pos("        ");
        lenStr=str.Length();            while (indexSemicolon!=0)
           {
            if (indexComma>indexSpace)
                strGet=MidStr(str,indexComma 1,indexSemicolon-indexComma-1);
            else
                strGet=MidStr(str,indexSpace 1,indexSemicolon-indexSpace-1);
            Memo1->Lines->Add(strGet);                              //於Memo秀出找到的字串
            str=MidStr(str,indexSemicolon 1,lenStr-indexSemicolon); //新的str
            lenStr=str.Length();                                    //新的字串長度                indexSemicolon=str.Pos("        ");                AnsiString tmepStr=MidStr(str,1,indexSemicolon-1);                indexSpace=tmepStr.LastDelimiter(" ");  //找出tempStr最後的Space
            indexComma=tmepStr.LastDelimiter(",");  //找出tempStr最後的逗號
           }
發表人 - nlj859 於 2004/09/27 15:09:21
benson5033
一般會員


發表:44
回覆:47
積分:18
註冊:2004-08-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-27 14:07:13 IP:210.62.xxx.xxx 未訂閱
我以為有更快的方法,看樣子還是要自已寫囉!!! 沒有現成的函式可以用,鳴~~~~~~~~~~~
系統時間:2024-07-03 8:46:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!