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

一篇文章中字串的過濾問題

尚未結案
111111dd
一般會員


發表:25
回覆:32
積分:11
註冊:2003-12-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-17 00:54:08 IP:61.59.xxx.xxx 未訂閱
請教各位高手有沒有較好的方法來過濾一篇文章中的字串? 條件1. 有大小寫英文字母及數字 2.字串是全部為數字的保留,其餘就刪掉. 所以底下的A文章就會變成B文章的內容: A: --------------------------------------------- 123abc 168 fff!FFF   HHHH?H 12S3456ABB EEE 345 VVVVV 888 W456 233 VVVVWWW ---------------------------------------------- B: ---------------------------------------------- 123abc 168 12S3456ABB   345  888 W456 233     ---------------------------------------------- 有寫一下程式: 文章叫入到ListBox1,以space為區隔字串的依据處理好存入ListBox2 但還沒有判斷字母a~z,A~Z,0~9; 是否有好一點的方法指點指點...    String  str,stradd[122]; char *chars; char chartostr[1024]; int linenum1,linenum2,position,length,flag,num; ListBox1->Items->LoadFromFile(b_file.c_str()); ListBox2->Items->LoadFromFile(Path); linenum1=ListBox1->Items->Count;    for(int i=0;iItems->Strings[i].Length(); for(int ii=0; iItems->Strings[i].SubString(ii,1)!=" ") { stradd[ii] ListBox1->Items->Strings[i].SubString(ii,1); flag=0; } else{ if(ListBox1->Items->Strings[i].SubString(ii,1)!= ListBox1->Items->Strings[i].SubString(ii-1,1)) {flag=1; num ;} } } str=stradd[i] " " stradd[i 1]; ListBox2->Items->Add(str);
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-17 09:32:54 IP:203.73.xxx.xxx 未訂閱
引言: 請教各位高手有沒有較好的方法來過濾一篇文章中的字串? 條件1. 有大小寫英文字母及數字 2.字串是全部為數字的保留,其餘就刪掉. 所以底下的A文章就會變成B文章的內容: A: --------------------------------------------- 123abc 168 fff!FFF HHHH?H 12S3456ABB EEE 345 VVVVV 888 W456 233 VVVVWWW ---------------------------------------------- B: ---------------------------------------------- 123abc 168 12S3456ABB 345 888 W456 233 ---------------------------------------------- 有寫一下程式: 文章叫入到ListBox1,以space為區隔字串的依据處理好存入ListBox2 但還沒有判斷字母a~z,A~Z,0~9; 是否有好一點的方法指點指點... String str,stradd[122]; char *chars; char chartostr[1024]; int linenum1,linenum2,position,length,flag,num; ListBox1->Items->LoadFromFile(b_file.c_str()); ListBox2->Items->LoadFromFile(Path); linenum1=ListBox1->Items->Count; for(int i=0;iItems->Strings[i].Length(); for(int ii=0; iItems->Strings[i].SubString(ii,1)!=" ") { stradd[ii]+ListBox1->Items->Strings[i].SubString(ii,1); flag=0; } else{ if(ListBox1->Items->Strings[i].SubString(ii,1)!= ListBox1->Items->Strings[i].SubString(ii-1,1)) {flag=1; num++;} } } str=stradd[i]+" "+stradd[i+1]; ListBox2->Items->Add(str);
111111dd 你好: 試試看這樣子寫行不行呢?? (請再依自己的需求做修改) < class="code"> int i=0; for(i=0; iItems->Count; i++) { AnsiString sz1=StringReplace(ListBox1->Items->Strings[i], " ", ",", TReplaceFlags()<CommaText=sz1; int j=0; while(jCount) { if(sl->Strings[j]=="") { sl->Delete(j); } else { bool bNumeric=false; bool bLower=false; bool bUpper=false; bool bDelete=false; int k=0; for(k=0; kStrings[j].Length(); k++) { if(sl->Strings[j][k+1]>='0' && sl->Strings[j][k+1]<='9') { bNumeric=true; } else if(sl->Strings[j][k+1]>='a' && sl->Strings[j][k+1]<='z') { bLower=true; } else if(sl->Strings[j][k+1]>='A' && sl->Strings[j][k+1]<='Z') { bUpper=true; } else { bDelete=true; } } if(!bDelete && bNumeric) { j++; } else { sl->Delete(j); } } } AnsiString sz2=""; int l=0; for(l=0; lCount; l++) { sz2+=sl->Strings[l]+" "; } ListBox1->Items->Strings[i]=sz2; delete sl; } -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
111111dd
一般會員


發表:25
回覆:32
積分:11
註冊:2003-12-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-17 11:39:40 IP:61.59.xxx.xxx 未訂閱
RaynorPao您是直接用字串處理,if(sl->Strings[j][k 1]>='a' && sl->Strings[j][k 1]<='z') 也省很多程式碼,好耶. 感謝高手了.
taishyang
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-17 13:42:45 IP:140.135.xxx.xxx 未訂閱
111111dd您好: 抱歉,若要PO程式碼時,請參考下面連結讓code比較容易閱讀喔 < href="http://delphi.ktop.com.tw/topic.php?TOPIC_ID=41948">http://delphi.ktop.com.tw/topic.php?TOPIC_ID=41948 順心
系統時間:2024-05-18 7:36:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!