用程式將反斜線轉換為雙反斜線 |
答題得分者是:supman
|
DBIN
一般會員 發表:5 回覆:7 積分:2 註冊:2005-04-12 發送簡訊給我 |
請問尤其他程式匯入的某個字串 \ 字元都會被認為是特殊字元 --------------------如以下程式
AnsiString sz1="C:\GOOD\1.JPG";
Edit1->Text=sz1;
ShowMessage(sz1); 輸入:"C:\GOOD\1.JPG" 結果變成 "C:GOOD.JPG" 請問如果利用程式搜尋字串裡面的 \ 轉換成為 \\ 讓結果正確呢! 小弟是過 RaynorPao 大大的方法 利用 AnsiString sz2=StringReplace(sz1,"\\" ,"\\\\", TReplaceFlags()<
|
supman
尊榮會員 發表:29 回覆:770 積分:924 註冊:2002-04-22 發送簡訊給我 |
|
DBIN
一般會員 發表:5 回覆:7 積分:2 註冊:2005-04-12 發送簡訊給我 |
|
DBIN
一般會員 發表:5 回覆:7 積分:2 註冊:2005-04-12 發送簡訊給我 |
|
blk5743
高階會員 發表:34 回覆:371 積分:236 註冊:2003-11-17 發送簡訊給我 |
|
supman
尊榮會員 發表:29 回覆:770 積分:924 註冊:2002-04-22 發送簡訊給我 |
|
DBIN
一般會員 發表:5 回覆:7 積分:2 註冊:2005-04-12 發送簡訊給我 |
引言: DBIN你好 把\換成\\就好了感謝 blk5743 的熱心回覆但 AnsiString sz1="C:\GOOD\1.JPG"; 只是隨便舉ㄉ例子 事實上 sz1 內容是由其他地方帶過來的,所以無法用人工的方式將 \ 改成 \\ 小弟在想是否應該先將字串轉換成 ASCII CODE 然後找出 \ 的代碼再用 \\ 取代ㄋ 發表人 - Dbin 於 2005/04/12 20:38:09 發表人 - Dbin 於 2005/04/12 21:04:17void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString sz1="C:\\GOOD\\1.JPG"; ShowMessage(sz1); } |
hdilwy
初階會員 發表:18 回覆:65 積分:41 註冊:2004-08-31 發送簡訊給我 |
|
DBIN
一般會員 發表:5 回覆:7 積分:2 註冊:2005-04-12 發送簡訊給我 |
|
m58610
初階會員 發表:22 回覆:83 積分:36 註冊:2003-09-07 發送簡訊給我 |
之前也為了這個問題傷透腦筋
搞了一個晚上才用好
我的做法是
1.將sz1轉成char(要注意sz1的長度要+1)
2.掃描整個char看有多少個是'\'
3.宣告另一個char並將長度設定為sz1長度+1+上述'\'的數量
4.利用回圈方式填入'\'
之後我就沒有轉回AnsiString了,因為我需要用Char*而不是字串
AnsiString sz1="C:\GOOD\1.JPG"; int length = sz1.Length() 1; char* temp = new char[ length ]; temp = sz1.c_str(); char* new; int n = 0; int add_num = 0; for(int i = 0; i <= length; i ) { if(temp[i] == '\\') { add_num ; } } new = new char[ length add_num ]; for(int i = 0; i <= length; i ) { new[i n] = temp[i]; if(temp[i] == '\\') { new[i n 1] = '\\'; n ; } }發表人 - m58610 於 2005/04/14 05:23:53 |
DBIN
一般會員 發表:5 回覆:7 積分:2 註冊:2005-04-12 發送簡訊給我 |
引言: 之前也為了這個問題傷透腦筋 搞了一個晚上才用好 我的做法是 1.將sz1轉成char(要注意sz1的長度要 1) 2.掃描整個char看有多少個是'\' 3.宣告另一個char並將長度設定為sz1長度 1 上述'\'的數量 4.利用回圈方式填入'\' 之後我就沒有轉回AnsiString了,因為我需要用Char*而不是字串呵呵,感謝!m58610 的支援,可惜沒辦法幫你家分了 >"<AnsiString sz1="C:\GOOD\1.JPG"; int length = sz1.Length() 1; char* temp = new char[ length ]; temp = sz1.c_str(); char* new; int n = 0; int add_num = 0; for(int i = 0; i <= length; i ) { if(temp[i] == '\\') { add_num ; } } new = new char[ length add_num ]; for(int i = 0; i <= length; i ) { new[i n] = temp[i]; if(temp[i] == '\\') { new[i n 1] = '\\'; n ; } }發表人 - m58610 於 2005/04/14 05:23:53 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |