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

請教各位關顧相對路徑設置的問題

尚未結案
lsh998
中階會員


發表:163
回覆:138
積分:60
註冊:2005-01-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-17 20:34:14 IP:219.128.xxx.xxx 未訂閱
请教:  我用的 Paradox  数据库    是通过 ADO  连接的 ,如下
ADOConnection1.ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="CollatingSequence=ASCII;DefaultDir='
        '.\Data;Driver={Driver do Microsoft Paradox (*.db )};DriverId=538;FIL=Paradox 5.X;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ParadoxNetPath='
    'C:\WINNT\system32;ParadoxNetStyle=4.x;ParadoxUserName=admin;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;"';    
因为 不是每台机器上都有'C:\WINNT\system32这个目录的.... 所以 我需要把它该 改成相对路径 但是 我不知道怎么把 C:\WINNT\system32 改成相对路径? 各位大哥,应该要怎么改啊? 谢谢!
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-17 20:57:48 IP:202.62.xxx.xxx 未訂閱
您好﹗    剛才正好寫到一段類似的程式碼﹐請參考如下﹕
Var
  Str: String;
begin
  if DirectoryExists('C:\WINNT\System32') then
    begin
      Str := 'C:\WINNT\System32\'
    end
  else
  if DirectoryExists('C:\Windows\System32') then
    begin
      Str := 'C:\Windows\System32\;
    end
  else
    begin
      ShowMessage('系統的System32目錄不存在')
      Application.Terminate;
    end;
  ADOConnection1.ConnectionString:='Provider=MSDASQL.1;Persist 
    Security Info=False;Extended 
    Properties="CollatingSequence=ASCII;DefaultDir='
      +'.\Data;Driver={Driver do Microsoft Paradox 
    (*.db )};DriverId=538;FIL=Paradox 
     5.X;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ParadoxNetPath='
    +Str+';ParadoxNetStyle=4.x;ParadoxUserName=admin;SafeTransactions=0;
    Threads=3;UID=admin;UserCommitSync=Yes;"';
end;
================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-17 21:02:37 IP:211.22.xxx.xxx 未訂閱
所謂相對路徑指的是你的程式在固定的路徑上執行,用相對路徑才能找到指定的檔案,例如你的程式在 C:\Temp 下執行,那麼 C:\WINNT\system32 相對於C:\Temp ,以C:\Temp下的程式路徑就要寫成 '..\WINNT\system32' 這樣!但是我認為這不是解決方案,而是你必須要知道你所要存取的檔案是不是永遠都會在那個地點,而且你的程式是不是永遠都會在固定的磁碟目錄下執行才能這樣寫! 另外,如果你要存取的檔案是存在於系統的目錄下,那麼為因應各種
lsh998
中階會員


發表:163
回覆:138
積分:60
註冊:2005-01-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-17 21:19:06 IP:219.128.xxx.xxx 未訂閱
太感谢 cashxin2002 大哥 和 Stallion 大哥了! cashxin2002 大哥,一般 win2000 server 就是 有'C:\WINNT\system32 其他的就是 'C:\Windows\System32\ ,是吗? Stallion 大哥,GetSystemDirectory 是怎么用的啊,请举个列子,好吗? 谢谢 !
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-17 22:04:08 IP:211.22.xxx.xxx 未訂閱
 var
    TempPath:String;
    Len:integer;
    ....        SetLength(TempPath,MAX_PATH);
    Len:=GetSystemDirectory(PChar(TempPath),MAX_PATH);
    SetLength(TempPath,Len);
    
    ....
    
----------------------------------------------- Creation is the fundation of promotion.
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-18 09:09:55 IP:202.62.xxx.xxx 未訂閱
您好﹗    据小弟所知﹐Windows各版本System32所在的路徑﹕ WinNT, Windows2000 'C:\WINNT\System32'    WinXP 'C:\Windows\System32'    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-06-18 10:51:29 IP:211.22.xxx.xxx 未訂閱
補充一下! 不知道
系統時間:2024-06-29 22:37:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!