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

關於檔案路徑的儲存問題

答題得分者是:pcboy
terrenceman
一般會員


發表:7
回覆:7
積分:2
註冊:2007-01-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-04-20 16:57:51 IP:140.115.xxx.xxx 訂閱
各位大大好,我想請問如果我取得一檔案的完整路徑如下所示:
--> C:\Documents and Settings\All Users\「開始」功能表\程式集
但是我只想儲存
--> \All Users\「開始」功能表\程式集
我該怎樣作呢?

感謝各位~~~
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-04-20 17:14:57 IP:61.220.xxx.xxx 訂閱
不清楚您真正想問的

<textarea class="delphi" rows="10" cols="60" name="code"> var s1, s2: String; begin s1:='C:\Documents and Settings\All Users\「開始」功能表\程式集'; s2:=Copy(s1,26,Length(s1)-25); Edit1.Text:=s2; end;</textarea>
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
terrenceman
一般會員


發表:7
回覆:7
積分:2
註冊:2007-01-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-04-20 18:31:52 IP:140.115.xxx.xxx 訂閱

===================引 用 pcboy 文 章===================
不清楚您真正想問的

<textarea class="delphi" rows="10" cols="60" name="code">var s1, s2: String; begin s1:='C:\Documents and Settings\All Users\「開始」功能表\程式集'; s2:=Copy(s1,26,Length(s1)-25); Edit1.Text:=s2; end;</textarea>

pcboy大大你好:

可能我問題問的不好,請多多見諒,我再解釋清楚好了。主要我是想當我想讀取在一資料夾內
的檔案時,能夠主要檔案夾路徑和次要的路徑分開儲存,藉此希望可以達到當我將主要整個檔案夾
移動時只需要將主要檔案路徑做更改而不需更改次要路徑即可正常讀取我所需要檔案。如下:

現有四個檔案路徑:
C:\Documents and Settings\All Users\test1\A.txt
C:\Documents and Settings\All Users\test2\B.txt
C:\Documents and Settings\All Users\test3\C.txt
C:\Documents and Settings\All Users\test4\D.txt

我可將其路徑存成:
S1: "C:\Documents and Settings\All Users\"
S2: "test1\A.txt"
S3: "test2\B.txt"
S4: "test3\Ctxt"
S5: "test4\D.txt"

當我將其放置到時
C:\All Users\test1\A.txt
C:\All Users\test2\B.txt
C:\All Users\test3\C.txt
C:\All Users\test4\D.txt

我只需要更改
S1: " C:\\"

則在我開啟檔案時就可以利用檔案路徑 S= S1 S2 來開啟我所需要的檔案,
而不是要去更改每個檔案的路徑。

所以此時我該怎樣去判定該儲存的主路徑長跟次路徑長,以便於儲存我所需
要的格式? 謝謝!





pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-04-21 00:06:10 IP:203.204.xxx.xxx 訂閱
還是看不懂
S1: "C:\Documents and Settings\All Users\"
S2: "test1\A.txt"
S3: "test2\B.txt"
S4: "test3\Ctxt"
S5: "test4\D.txt"

S1 改為 C:\
S2 應該是 C:\test1\A.txt , 不是 C:\All Users\test1\A.txt
主要檔案路徑夾 是取所有檔案共通的路徑 ? 還是取第一層子目錄 ?
主要檔案路徑夾 一開始是電腦根據妳選的檔案路徑自動分析出來的 ? 還是你自己設定的 ?

------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
terrenceman
一般會員


發表:7
回覆:7
積分:2
註冊:2007-01-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-04-23 14:30:21 IP:140.115.xxx.xxx 訂閱

===================引 用 pcboy 文 章===================
還是看不懂
S1: "C:\Documents and Settings\All Users\"
S2: "test1\A.txt"
S3: "test2\B.txt"
S4: "test3\Ctxt"
S5: "test4\D.txt"

S1 改為 C:\
S2 應該是 C:\test1\A.txt , 不是 C:\All Users\test1\A.txt
主要檔案路徑夾 是取所有檔案共通的路徑 ? 還是取第一層子目錄 ?
主要檔案路徑夾 一開始是電腦根據妳選的檔案路徑自動分析出來的 ? 還是你自己設定的 ?



pcboy大大你好:

不好意思,針對你提的我再解釋一下,希望會比較方便你回答我的問題,謝謝嚕!
一、上一篇我回的地方部分有誤,應該是將原S1: "C:\Documents and Settings\All Users\" 改成 S1: "C:\All Users",
則S= S1 S2 ,即可藉由S路徑來開啟檔案!

二、 整個主要檔案夾因為可能會變動,且我可自行變更其路徑的設定,但主檔案資料夾
內的資料名稱夾跟檔案是不會變動的,我希望能夠做到當我將主資料夾任意放置在不同
路徑中,只需要針對所需檔案共同的路徑作修改,即可順利讀取檔案!

即:
當我將原檔案路徑EX:"C:\Documents and Settings\All Users\test1\A.txt",中主資料夾(All Users)
放置到C:\下,則原檔案路徑變為C:\All Users\test1\A.txt,我想知道該怎樣作才能在只更動主資料夾
所在路徑的狀況下,依然能順利讀取All Users內的檔案。


不知道這樣您可否瞭解我的問題,勞煩您了! 感恩~~~













Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-04-23 14:38:33 IP:220.130.xxx.xxx 訂閱
如果你已經有了root路徑,那麼就令它為S00就好啦
剩下的就叫S01, S02, S03..
第二個root就叫S10,
它的sub dir就叫S11, S12, S13
每次讀進absolute path時就去扣掉root path的長度就是剩下要存的了
如果你還要設定sub root,那就讓它變成3位數,第二位拿來控制sub root就可以了


這只是一種方法而已,還有很多方法,利用INI也是可行的方法之一
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
編輯記錄
Coffee 重新編輯於 2007-04-23 15:34:19, 註解 加料XD‧
terrenceman
一般會員


發表:7
回覆:7
積分:2
註冊:2007-01-05

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-04-23 16:21:11 IP:140.115.xxx.xxx 訂閱


感謝coffee的答覆~~~ 我大概瞭解你說的了!
因為pcboy用的Copy指令在BCB中是不互通的!
我想請問在BCB中有什麼替代的指令可以有類似的功能呢?
謝謝唷~~~
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-04-23 16:25:36 IP:220.130.xxx.xxx 訂閱
請自行參考C++或BCB Manual 
String routines
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-04-23 16:41:09 IP:61.220.xxx.xxx 訂閱

參考看看
<textarea class="cpp" rows="10" cols="60" name="code">{ String s1="C:\\Documents and Settings\\All Users\\「開始」功能表\\程式集"; String s2=""; s2=s1.SubString(26,s1.Length()-25); Edit1->Text= s2; } </textarea><br />
主要檔案路徑夾(S1) 一開始是電腦根據妳選的檔案路徑自動分析出來的 ? 還是你自己設定的 ?
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
編輯記錄
pcboy 重新編輯於 2007-04-23 16:42:04, 註解 無‧
terrenceman
一般會員


發表:7
回覆:7
積分:2
註冊:2007-01-05

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-04-23 17:12:59 IP:140.115.xxx.xxx 訂閱
pcboy and coffee兩問感謝你們的題點和解釋我已經達到我要的功能了!
這是我後來改寫成的樣子:

if( OpenDialog1-> Execute())
{
String PathRGB100 = OpenDialog1-> FileName;
Edit1-> Text= PathRGB100.SubString( DirPath.Length() 1, PathRGB100.Length()- DirPath.Length() );
}

已經可以用了,謝謝嚕!最佳解我就給最先回我的pcboy大大啦! 也是再三感謝coffee的幫忙啦,感恩~~

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