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

請教FileSetDate函數

尚未結案
cashxin2002
版主


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-19 23:46:02 IP:63.84.xxx.xxx 未訂閱
請教各位前輩.    FileSetDate函數宣告中FileSetDate(Handle:Integer, Age:Integer):Integer 的Age值有何限定? 如下程式碼中:
procedure TForm1.Button1Click(Sender: TObject);
Var
  FileHandle : Integer;
  Str : String;
begin
  FileHandle := FileOpen('D:\Xin.txt', fmOpenReadWrite);
  if FileHandle = -1 then
    ShowMessage('開啟檔案失敗')
  else
    begin
      Str := '檔案原來日期時間: '  DateTimeToStr(FileDateToDateTime(
              FileGetDate(FileHandle))) #10#13;
      if FileSetDate(FileHandle, FileGetDate(FileHandle) 100)=0 then
        Str := Str DateTimeToStr(FileDateToDateTime(FileGetDate(FileHandle)))
      else
        Str := Str '新的日期時間設定失敗';
        ShowMessage(Str);
    end;
  FileClose(FileHandle);
end;
小弟將FileGetDate(FileHandle)的回傳值 100, 測試檔案的日期時間變動為順時針方向加3分零8秒, 但到了一定的值FileSetDate(FileHandle, FileGetDate(FileHandle) 100)=0時, 就會出現'新的時期時間設定失敗'的信息, 請問此處的限定是多少? 回傳值的單位又是什么? 0代表什么? 感謝! ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-20 09:11:20 IP:203.222.xxx.xxx 未訂閱
你應該是說錯了 FileSetDate = 0 時,代表設定成功,你的程式碼也是這樣寫的,不是嗎 若是有錯才不為 0 ,此時傳回的是錯誤代碼 至於 Age 的範圍,嗯,第一次聽到有人直接要用 Age 設定 Age 的範圍就是 Integer 的範圍,只是你要自己來做時間上的轉換,將時間直轉換成 OS TimeMap,不過一般都不這樣做,因為要是你有一堆時間,那你豈不累死,通常都用 Age := DataTimeToFileDate(時間),用人家已經寫好的 function 來轉換
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-21 21:02:37 IP:202.39.xxx.xxx 未訂閱
蠻奇怪的, 小弟也 new 一個文字檔來測試 有時候修改後的結果可以一直每 3 分鐘的增加, 有時候則是一兩次之後就無法再增加了 可是即使結果不會再增加, 但設定結果都回傳 0(表示成功) 不會出現 cashxin2002 兄所說的失敗訊息 --- 歡迎光臨 >
cashxin2002
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-09-21 23:49:46 IP:63.84.xxx.xxx 未訂閱
引言: 你應該是說錯了 FileSetDate = 0 時,代表設定成功,你的程式碼也是這樣寫的,不是嗎 若是有錯才不為 0 ,此時傳回的是錯誤代碼
您好! 感謝回复. 小弟問題中將此句寫錯了, 應該是: else if FileSetDate(FileHandle, FileGetDate(FileHandle) 100)=0時...
引言: 蠻奇怪的, 小弟也 new 一個文字檔來測試 有時候修改後的結果可以一直每 3 分鐘的增加, 有時候則是一兩次之後就無法再增加了 可是即使結果不會再增加, 但設定結果都回傳 0(表示成功) 不會出現 cashxin2002 兄所說的失敗訊息 --- 歡迎光臨 > < face="Verdana, Arial, Helvetica"> 謝謝hagar版主回复. 請您將: if FileSetDate(FileHandle, FileGetDate(FileHandle) 100)=0中的100設得大一些(如20000), 再連續触發此事件, 不需要幾次重复即可出現程式中的'新的時期時間設定失敗'信息. 更新問題如下: 但到了一定的值else if FileSetDate(FileHandle, FileGetDate(FileHandle) 100)=0時, 就會出現'新的時期時間設定失敗'的信息, 請問此處的限定是多少? 回傳值的單位又是什么? 謝謝! ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-09-22 06:57:12 IP:202.39.xxx.xxx 未訂閱
小弟依 cashxin2002 兄所述, 將 100 加大至 20000 只有第一次能成功地加檔案時間加大 第二次以後雖然 FileSetDate 的回傳值依然為 0(設定成功) 但檔案時間依舊是第一次設定的結果, 不會再增加了. 小弟也不知為何?    --- 歡迎光臨 KTop 研究院
cashxin2002
版主


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-09-22 09:47:29 IP:63.84.xxx.xxx 未訂閱
感謝回應﹒    小弟將以下一句中的紅色值改為1000if FileSetDate(FileHandle, FileGetDate(FileHandle)+1000)=0 then... 檔案原始時間為﹕09/22/2003 上午12:07:04 ﹒執行程式后﹐正常更新日期時間的剪貼圖和更新日期時間的剪貼圖如下﹐在更新的檔案日期時間至﹕09/22/2003 上午04:42:20 后﹐再次執行触發事件﹐即會出現'新的日期時間設定失敗'信息﹒ 謝謝﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-09-22 10:51:49 IP:203.222.xxx.xxx 未訂閱
不知 cashxin2002 是否有什麼特殊目的一定要自己來轉換時間? Age 是屬於 OS TimeMap 格式,如果你不使用轉換函式,那勢必要自己取轉換囉 至於 OS timemap 的格式,在下沒研究過,是否加上去的值越大,時間就越往後,也不知道,說不定在一定的範圍內,時間反而會提前
cashxin2002
版主


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-09-22 11:35:50 IP:63.84.xxx.xxx 未訂閱
謝謝大家的回复﹒    小弟是想了解此函數的使用方法﹒ 如果在實做中﹐小弟想直接指定檔案的日期﹐然后用該函數來更新﹐該如何做呢﹖謝謝﹗    ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-09-22 17:04:31 IP:203.222.xxx.xxx 未訂閱
FileSetDate(FileHandle,DataTimeToFileDate(時間))
cashxin2002
版主


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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-09-22 18:13:18 IP:63.84.xxx.xxx 未訂閱
感謝各位前輩指點﹒    OS timemap 的格式﹐經小弟測試﹐應該是加的值越大﹐時間就越往後(順時針方向)﹐減的值越大﹐時間就越提前(逆時針方向)﹒    感謝syntax﹗        ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
系統時間:2024-09-29 6:04:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!