全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1240
推到 Plurk!
推到 Facebook!

利用TFileListBox取得檔名的怪異問題

答題得分者是:bass15
aredfish
一般會員


發表:47
回覆:41
積分:17
註冊:2002-12-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-08 11:39:32 IP:210.241.xxx.xxx 未訂閱
大家好,我利用TFileListBox來指定一個檔案,之後再將檔名部分粹取出來 不過我發現一個很奇怪的問題,也就是檔名長度與實際不符,我的程式如下: handle = open(FLBox->FileName.c_str(), O_CREAT); 先取得Handle FName = ExtractFileName(FLBox->FileName);        取得檔名 ShowMessage(FName);           畫面出現0123456789.mp3 i=FName.Length();             這時候i=15  <---不是應該14嗎?? for(i=1;i,怎麼會這樣子!!!! 發表人 -
bass15
高階會員


發表:24
回覆:171
積分:119
註冊:2003-10-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-08 13:52:04 IP:61.66.xxx.xxx 未訂閱
我試過了喔 不會有問題阿  
 
  AnsiString FName = ExtractFileName(FLBox->FileName); //取得檔名
  ShowMessage(FName);//這裡秀0123456789.mp3
  int i=FName.Length();
  Edit1->Text=String(i);//這裡秀14
你是不是用debug來看值阿.. 要執行到下一行值才會變喔.. 例如: i=0;<----若中斷點設在這行...i的值還未被改變喔 斷點設在下一行才對
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-08 15:35:20 IP:211.162.xxx.xxx 未訂閱
aredfish大大,您看看这样可以吗?

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        String ch         =  "";
        AnsiString FName  =  "0123456789.mp3";
        int i             =  FName.Length();
        for(int j = 1; j <= i; j  )
        {
            ch.Insert(FName[j],j);
        }
        ShowMessage(ch); //还是会秀出0123456789.mp3
}    
bass15大大说的有道理,请您再看看自己是否在什么地方忽略了,预祝顺安! < class="code"> =============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获?
aredfish
一般會員


發表:47
回覆:41
積分:17
註冊:2002-12-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-08 17:00:01 IP:210.241.xxx.xxx 未訂閱
謝謝兩位的幫忙,我先前說值會變是我實驗的步驟有錯,不過所得到的字串長度 真的會變,實在很奇怪,我用ShowMessage()來顯示兩次的字串值,看起來都一樣 可是......當我用Length();來取得長度的時候卻發現兩個字串長度不相等 超奇怪的,我try了很久後來還是先用SetLength將長度規一化之後再做比較 我想我之後有時間再試試看好了,非常謝謝大家的幫忙,如果有結果會再弄出來給大家看,謝謝!!
系統時間:2024-11-23 7:14:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!