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

檔名+多個檔時的問題

尚未結案
4880h009
一般會員


發表:32
回覆:43
積分:15
註冊:2003-11-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-09 22:06:02 IP:140.124.xxx.xxx 未訂閱
之前問過RaynorPao兄,關於讀取檔名的問題,程式碼如下 下面是我之前發問的位置 http://delphi.ktop.com.tw/link.asp?TOPIC_ID=41856
int x=0, y=0;
   AnsiString szFileName;
   szFileName=OpenDialog1->FileName;
   if(FileExists(szFileName) && ExtractFileName(szFileName).AnsiPos("ave")==1)
   {
    x=StrToInt(ExtractFileName(szFileName).SubString(4, 1));
    y=StrToInt(ExtractFileName(szFileName).SubString(5, 1));
   }
但是我現在要一次開很多的檔,程式碼如下
    OpenDialog1->Filter = "Data files (*.dat)|*.DAT|Text files (*.txt)|*.TXT";
    OpenDialog1->Options.Clear();
    OpenDialog1->Options << ofAllowMultiSelect;
此時我還可以讀到每一檔的座標位置嗎? 我有用過,可是好像只有最後一個選取的檔案,各位兄弟有空的話,幫小弟解感一下吧!! 先感謝各位兄弟啦~~~ 發表人 - taishyang 於 2003/12/09 22:08:27
taishyang
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-09 22:12:01 IP:140.135.xxx.xxx 未訂閱
4880h009您好: 您的這個問題,與您上一篇是一樣的做法請參考 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=41884 下面是範例程式
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 if(OpenDialog1->Execute())
 {
  for (int i=0;iFiles->Count;i  )
  {
   int x=0, y=0;
   AnsiString szFileName;
   szFileName=OpenDialog1->Files->Strings[i] ;
   if(FileExists(szFileName) && ExtractFileName(szFileName).AnsiPos("ave")==1)
   {
    x=StrToInt(ExtractFileName(szFileName).SubString(4, 1));
    y=StrToInt(ExtractFileName(szFileName).SubString(5, 1));
    Memo1->Lines->Add(IntToStr(x) IntToStr(y));
   }
  }
 }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 OpenDialog1->Filter = "Data files (*.dat)|*.DAT|Text files (*.txt)|*.TXT";
 OpenDialog1->Options.Clear();
 OpenDialog1->Options << ofAllowMultiSelect;
}
p.s:po程式碼的方式您可以參考下面連結,您的方式少了一個'/' http://delphi.ktop.com.tw/topic.php?TOPIC_ID=41390 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
4880h009
一般會員


發表:32
回覆:43
積分:15
註冊:2003-11-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-10 11:19:52 IP:140.124.xxx.xxx 未訂閱
我要用檔名取得的x與y來定每個檔畫圖的位置,即是我一次開很多的檔,要一次把所有的圖畫出來,我畫圖的程式是把檔案的內容存入陣列中,再用線畫出來,哪我的畫圖程式是否要再修改,才能把所開的檔案(很多個檔),圖統統畫出來? 不好意思~因為很雜,所以說的不是很清楚~

中階會員


發表:36
回覆:142
積分:70
註冊:2003-07-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-10 12:36:18 IP:163.23.xxx.xxx 未訂閱
4880h009 您好: 您要的就是開啟檔案,但麻煩就是不知道有哪些,所以想用 TOpenDialog 元件 小弟建議用另一個做法,也許會複雜點 考慮增加一個 ListBox , FormCreat 時就把指定路徑下的檔名都列上 當您想開啟哪個檔案,就在 ListBox 上點一下,檔案就會開啟 這個替代的方案您可以考慮考慮 因為 ListBox 在您不想看到的時候是可以隱藏 應該是不致於影響您的視窗畫面或物件位置的美觀
taishyang
站務副站長


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-12-10 17:32:51 IP:140.135.xxx.xxx 未訂閱
4880h009您好: 依照您原題目,不是用OpenDialog1選取多個檔案,藉由檔名畫出圖形嗎?
 if(OpenDialog1->Execute())//開啟OpenDialog1
 {
  for (int i=0;iFiles->Count;i  )
  {
   int x=0, y=0;
   AnsiString szFileName;
   szFileName=OpenDialog1->Files->Strings[i] ;
   if(FileExists(szFileName) && ExtractFileName(szFileName).AnsiPos("ave")==1)
   {
    x=StrToInt(ExtractFileName(szFileName).SubString(4, 1));
    y=StrToInt(ExtractFileName(szFileName).SubString(5, 1));
    //取得每一個所選的檔名之x與y,並顯示在Memo上
    Memo1->Lines->Add(IntToStr(x) IntToStr(y));
    //立刻作畫圖的動作
   }
  }
 }
//或是接下來您可以利用Memo上的資料再作畫圖的動作 順心
系統時間:2024-05-21 5:29:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!