delphi5有與delphi6 類似的這兩個日期 function 嗎? |
尚未結案
|
mathewzhao
中階會員 發表:121 回覆:164 積分:67 註冊:2003-04-04 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
Hi, 你可以自行 trace 一下 delphi 6 的程式碼, 自行定義 IsToday , DayOf Function 即可在 delphi 5 中使用..
function IsToday(const AValue: TDateTime):Boolean; begin Result := (AValue >= Trunc(Date)) and (AValue < Trunc(Date) 1); end; // // function DayOf(const AValue: TDateTime): Word; var LYear, LMonth: Word; begin DecodeDate(AValue, LYear, LMonth, Result); end; |
mathewzhao
中階會員 發表:121 回覆:164 積分:67 註冊:2003-04-04 發送簡訊給我 |
|
flyup
資深會員 發表:280 回覆:508 積分:385 註冊:2002-04-15 發送簡訊給我 |
引言: 那請問如何獲得檔案的創建日期(不需要創建時間!)function CovFileDate(Fd:_FileTime):TDateTime; { 轉換檔案的時間格式 } var Tct:_SystemTime; Temp:_FileTime; begin FileTimeToLocalFileTime(Fd,Temp); FileTimeToSystemTime(Temp,Tct); CovFileDate:=SystemTimeToDateTime(Tct); end; ..... procdeure GetFileTime(const Tf:string); { 獲取檔案時間,Tf表示目標檔案路徑和名稱 } const Model='yyyy/mm/dd,hh:mm:ss'; { 設定時間格式 } var Tp:TSearchRec; { 宣告Tp為一個查找記錄 } T1,T2,T3:string; begin FindFirst(Tf,faAnyFile,Tp); { 查找目標檔案 } T1:=FormatDateTime(Model, CovFileDate(Tp.FindData.ftCreationTime))); { 返回檔案的創建時間 } T2:=FormatDateTime(Model, CovFileDate(Tp.FindData.ftLastWriteTime))); { 返回檔案的修改時間 } T3:=FormatDateTime(Model,Now)); { 返回檔案的當前訪問時間 } FindClose(Tp); end; 善用「注意力」,就是善於掌握「優先次序」—分清那些是重要的及不重要的。 「捨」才會「得」,集中焦距,才能發揮核心優勢。 |
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
引言: 那請問如何獲得檔案的創建日期(不需要創建時間!)flyup 兄的方式很好哦. 另外, 弟參考了一下 delphi 的 FileAge Function 後, 改寫了一下功能, 原來的 fileage 是 ftLastWriteTime (最後修改時間), 但不能查建立時間和最後存取時間, 所以弟寫了 FileAgeEx function, 其中第一個參數是檔名, 第二個參數是要取得的時間是代碼 1. 建立時間 2. 最後存取時間 3. 最後修改時間 回傳為檔案時間格式, 若是 -1 則表示找不到該檔(如原來的 FileAge Function一樣) 然後再利用 FileDateToDateTime function 來將傳回的檔案時間轉為 TDateTime 的格式. 以下為範例: procedure TForm1.Button1Click(Sender: TObject); var t0, t1, t2, t3: string; begin t0:=formatdatetime('yyyy/mm/dd',FileDateToDateTime(FileAge('c:\AspiLog.TXT'))); t1:=formatdatetime('yyyy/mm/dd',FileDateToDateTime(FileAgeEx('c:\AspiLog.TXT',1))); t2:=formatdatetime('yyyy/mm/dd',FileDateToDateTime(FileAgeEx('c:\AspiLog.TXT',2))); t3:=formatdatetime('yyyy/mm/dd',FileDateToDateTime(FileAgeEx('c:\AspiLog.TXT',3))); Memo1.Lines.Add('fileage : ' t0); Memo1.Lines.Add('建立時間 : ' t1); Memo1.Lines.Add('最後存取時間: ' t2); Memo1.Lines.Add('最後修改時間: ' t3); end; //.... // function FileAgeEx(const FileName: string; types: Integer): Integer; var Handle: THandle; FindData: TWin32FindData; LocalFileTime: TFileTime; begin Handle := FindFirstFile(PChar(FileName), FindData); if Handle <> INVALID_HANDLE_VALUE then begin Windows.FindClose(Handle); if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then begin case types of 1: // 建立時間 FileTimeToLocalFileTime(FindData.ftCreationTime, LocalFileTime); 2: // 最後存取時間 FileTimeToLocalFileTime(FindData.ftLastAccessTime, LocalFileTime); 3: // 最後修改時間 FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime); end; if FileTimeToDosDateTime(LocalFileTime, LongRec(Result).Hi, LongRec(Result).Lo) then Exit; end; end; Result := -1; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |