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

請問關於範例程式TServerSocket/TClientSocket檔案路徑過長

尚未結案
millerh
一般會員


發表:10
回覆:10
積分:4
註冊:2004-12-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-27 13:22:15 IP:140.126.xxx.xxx 未訂閱
我是參考這篇文章 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=25914 但是在兩台電腦互傳的時候 路徑過長發生錯誤 請問要怎修改才行 謝謝~~
RaynorPao
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-25 21:43:27 IP:219.84.xxx.xxx 未訂閱
引言: 我是參考這篇文章 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=25914 但是在兩台電腦互傳的時候 路徑過長發生錯誤 請問要怎修改才行 謝謝~~
millerh 你好:
(1)「路徑過長」是指什麼?是否能夠詳述?
(2)你自己寫的程式碼呢?是否貼上來幫你看看 (相關的部分)?
-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
millerh
一般會員


發表:10
回覆:10
積分:4
註冊:2004-12-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-27 19:22:38 IP:213.121.xxx.xxx 未訂閱
millerh 你好:
(1)「路徑過長」是指什麼?是否能夠詳述?
(2)你自己寫的程式碼呢?是否貼上來幫你看看 (相關的部分)?
我把程式裡面內建選取的檔案改成手動輸入 String FileName=Edit1->Text; msFile->LoadFromFile(FileName.c_str()); 但是如果FileName過長的話(ex:C:\\123456789\)123456789\123456789\test.jpg) 好像會被切掉 也就是接收端所接收的路徑不完全 我的解決辦法是最後再傳檔案路徑過去把它蓋掉 應該沒有別的辦法了吧
RaynorPao
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-02-27 23:26:42 IP:219.84.xxx.xxx 未訂閱
引言: 我把程式裡面內建選取的檔案改成手動輸入 String FileName=Edit1->Text; msFile->LoadFromFile(FileName.c_str()); 但是如果FileName過長的話(ex:C:\\123456789\)123456789\123456789\test.jpg) 好像會被切掉 也就是接收端所接收的路徑不完全 我的解決辦法是最後再傳檔案路徑過去把它蓋掉 應該沒有別的辦法了吧
millerh 你好:
(1)應該不會有你說的情形發生,例如:
   你在 Edit1 鍵入「C:\123456789\123456789\123456789\test.jpg」的話,
   建議把你的程式碼改成這個樣子寫比較好
   AnsiString FileName=Edit1->Text;
   if(FileExists(FileName))
   {
      msFile->LoadFromFile(FileName);
      //...do something...
   }
   其中 LoadFromFile 代入的參數應該為 AnsiString,而不是 c_str(),另外
   ,加上 FileExists 先確認該檔案是否存在,才進行下一個步驟 (因為你目
   前使用的方式是讓使用者手動鍵入檔案的路徑及名稱,萬一打錯了怎麼辦?
   所以要再 check 一次)
(2)其實,你也可以利用 TOpenDialog 元件,提供使用者選擇檔案的介面,醬子
   或許會更人性化,例如:
   if(OpenDialog1->Execute())
   {
      if(FileExists(OpenDialog1->FileName))
      {
         msFile->LoadFromFile(FileName);
         //...do something...
      }
   }
   有關 TOpenDialog 的使用,在本站已經有很多這方面的討論文章,我就不再
   多說了,建議你利用本站搜尋的功能,就可以找到很多範例及說明
-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
millerh
一般會員


發表:10
回覆:10
積分:4
註冊:2004-12-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-03-05 00:31:11 IP:61.230.xxx.xxx 未訂閱
我是用OpenDialog沒錯 沒有說清楚 不好意思 原來LoadFromFile的參數是AnsiString 那為什麼我用.c_str()還是可以跑 奇怪 只是檔案路徑太長的話 送過去的檔案路徑就會錯 因為沒有收到全部(我有把收到的路徑po出來) 難道是因為我用.c_str()的關係嗎?? 因為我現在沒有兩台可以電腦測試......
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-04-18 17:33:14 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-05-06 21:28:03
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!