請教AnsiString如何取得特定字串的位址(字串有重複) |
尚未結案
|
logi
一般會員 ![]() ![]() 發表:4 回覆:4 積分:1 註冊:2002-10-26 發送簡訊給我 |
|
RaynorPao
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 假設 AnsiString rect="111112222233333aaabbbccc333332222211111cccbbbaaa"; 要取的"33333"所有位置 rect.pos("33333"); ==> 第一個位址 那第二個要如何去取得... 方法一: 前面的字串拿掉在再取一次位址. (有沒有比較快速的方式) logi 你好: (1)也許可以自己寫一個迴圈,就可以找到每個子字串的正確位置,例如: AnsiString szSrc="111112222233333aaabbbccc333332222211111cccbbbaaa"; AnsiString szDst="33333"; for(int i=0; i
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
andychang1690
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
logi: 提供一個副程式供參考 AnsiString rect="111112222233333aaabbbccc333332222211111cccbbbaaa"; AnsiString Snum=Count_Str_Num(rect,"33333","-"); //傳回11,25, AnsiString __fastcall Form1::Count_Str_Num(AnsiString Str,AnsiString StrPos,AnsiString ReplPos) { AnsiString S=Str; AnsiString S1=""; // 計數返回值為出現位址 int pos1 = -1; do { pos1 = S.Pos(StrPos); if (pos1 > 0) { S1 =IntToStr(pos1) ","; S.Delete(pos1, 1); // 刪除一個字元即可 S.Insert(ReplPos, pos1); // 同位址置換另一個字元 } } while (pos1 !=0 ); return S1; } 此方式為找到後僅取代一個字元,再繼續找相信比你要處理前面的字串拿掉在再取一次位址應該要快及方便一些。 請參考Andy Chang 發表人 - andychang1690 於 2004/08/18 11:17:05 發表人 - andychang1690 於 2004/08/18 11:26:21
------
Andy Chang |
logi
一般會員 ![]() ![]() 發表:4 回覆:4 積分:1 註冊:2002-10-26 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |