關於字串長度及取得字串裡面的子字串問題? |
答題得分者是:richtop
|
nlj859
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
|
richtop
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
nlj859 您好:
引言: 我有一個字串如下:因為"\"是C/C 的控制字元,所以在字串中要用"\\"表示。這個您可以直接印str出來觀察。 於是結果就少了2,變成13。 至於取出abc.txt,首先假設資料是在字串的最後面,底下程式碼可參考看看:AnsiString str="D:\test\abc.txt"; int strLen=str.Length(); ShowMessage(strLen);* 為何它是顯示13而已,而沒有把"\"算進去呢? * 如果我要取出abc.txt的話,該怎麼做? 因為我使用ShowMessage(str.Pos("\\"));去找尋它所在的第幾個字元的話都是顯示0,那這樣我就沒辦法去取得"abc.txt"了. 請問該怎麼取出我要的字串? 謝謝. |
nlj859
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
Hello RichTop, 這要從之前講起了:
Q1:我的完整字串程式碼如下:
TStringList *txtfile=new TStringList; for (int i=0;iFileListBox1->Directory它存於txtfile裡面都是d:\test\abc.txt這種格式. 我要如何讓它存入變成d:\\test\\abc.txt呢? Q2:我所存入的abc.txt內容可能如下: c:\myprogram\aaa.txt d:\test1\bb.txt c:\test2\project\formtest\log.txt ..... ..... ..... 我知道該使用substring去取得字串的用法.但因為路徑長度每次都不同,所以才不曉得該如何處置. 試過你的用法之後,我知道該如何處理了,thx. 還煩請為我解答第一個問題. Sorry,一開始沒有講到我的存檔的內容,所以才讓你誤解. 發表人 - nlj859 於 2004/08/15 18:06:24 |
bass15
高階會員 ![]() ![]() ![]() ![]() 發表:24 回覆:171 積分:119 註冊:2003-10-27 發送簡訊給我 |
|
nlj859
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
|
andychang1690
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
* 如果我要取出abc.txt的話,該怎麼做?
AnsiString str="D:\\test\\abc.txt",filename;
int i=str.LastDelimiter("\\");
int j=str.Length();
filename=str.SubString(i 1, j-i); // 得到abc.txt
LastDelimiter可見Help說明。
我要如何讓它存入變成d:\\test\\abc.txt呢?
不要理會它,文字檔內的"\"非控制字元。
請參考! Andy Chang
------
Andy Chang |
richtop
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
nlj859 您好: 如果您已經將檔案的名稱,存成您提到的形式,其實當您把它們從外面讀進來時,就自動變成正確的格式,也就是說不必再費心將"\"改成"\\"。除非是您自己在程式中書寫的字串,才要特別注意這件事。
例如:可以利用下列程式碼,故意輸入您要的路徑與檔名,看結果是什麼。
ShowMessage( InputBox("Title","Prompt","myDefault\\datafile") ); // 紅色部分要注意! 最早本來要試著找andychang1690大大所用的方法,但一時間竟然找不到該函式LastDelimiter(.),所以硬著頭皮,用上述土法煉鋼的方法
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |