分隔字元-續 |
答題得分者是:nlj859
|
benson5033
一般會員 發表:44 回覆:47 積分:18 註冊:2004-08-16 發送簡訊給我 |
|
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |