首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 6 SysUtils 單元函數速查手冊(四):格式化、日期時間、系統資訊與檔案/目錄操作

     編輯:Delphi

本文為 Delphi 6 SysUtils.pas 函數大全系列第四部分,涵蓋 浮點數/貨幣格式化、字串轉數值、日期時間編碼/解碼/格式化、系統時間/當前年份、月份運算、閏年判斷、日期時間轉字串/字串轉日期時間、系統錯誤訊息、地區設定、格式設定還原、語言資訊、記憶體分配、退出程序、字串大小寫/比較/修剪/引用、字串轉整數/布林、資源字串載入、檔案開關/讀寫/搜尋/屬性/刪除/重命名/路徑拆解/磁碟空間。

核心函數分類速查

1. 數值格式化與轉換

函數用途關鍵參數
FormatFloat浮點數依格式字串轉字串FormatFloat(',.00', 1234567890) = '1,234,567,890.00'
FormatCurr貨幣依格式字串轉字串同 FormatFloat
FloatToTextFmt低階格式化至 PChar 緩衝區回傳寫入長度
StrToFloat / StrToFloatDef / TryStrToFloat字串轉浮點數Def/Try 避免例外
StrToCurr / StrToCurrDef / TryStrToCurr字串轉貨幣
TextToFloatPChar 緩衝區轉無型別數值ValueType 指定目標類型
FloatToDecimal浮點數轉 TFloatRec 結構Precision/Decimals 控制精度

2. 日期時間核心操作

分類函數用途
編碼EncodeDate年月日 → TDateTime
EncodeTime時分秒毫秒 → TDateTime
TryEncodeDate安全編碼日期,失敗回 False
TryEncodeTime安全編碼時間,失敗回 False
解碼DecodeDateTDateTime → 年月日
DecodeDateFullyTDateTime → 年月日星期
DecodeTimeTDateTime → 時分秒毫秒
轉換DateTimeToTimeStampTDateTime ↔ TTimeStamp
TimeStampToDateTime
毫秒互轉MSecsToTimeStampComp 毫秒 ↔ TTimeStamp
TimeStampToMSecs
系統時間DateTimeToSystemTimeTDateTime ↔ TSystemTime (Win32 API)
SystemTimeToDateTime
星期DayOfWeek1=週日...7=週六
當前值Date / Time / Now僅日期/僅時間/日期時間
年份CurrentYear當前年份 Word

3. 日期時間運算與格式化

函數用途範例
IncMonth增加/減少月份IncMonth(Date, -3) 三個月前
IncAMonth直接操作年月日變數程序而非函數
ReplaceTime替換日期時間的時間部分Int(DT) + Frac(NewTime)
ReplaceDate替換日期時間的日期部分Int(NewDate) + Frac(DT)
IsLeapYear判斷閏年(Y mod 4=0) and ((Y mod 100<>0) or (Y mod 400=0))
DateToStr / TimeToStr / DateTimeToStr依系統格式轉字串ShortDateFormat/LongTimeFormat
StrToDate / StrToDateDef / TryStrToDate字串轉日期
StrToTime / StrToTimeDef / TryStrToTime字串轉時間
StrToDateTime / StrToDateTimeDef / TryStrToDateTime字串轉日期時間
FormatDateTime自訂格式轉字串'YYYY"年"MM"月"DD"日"'
DateTimeToString程序版 FormatDateTime結果存入 var 參數
FloatToDateTime浮點數 (OADate) 轉 TDateTimeExcel 日期互轉

4. 系統與地區資訊

函數用途
SysErrorMessage錯誤碼對應系統訊息字串
GetLocaleStr取得地區設定字串 (如語言名稱)
GetLocaleChar取得地區設定字元 (如千分位符號)
GetFormatSettings還原系統預設格式設定
Languages取得系統支援語言集合物件

5. 記憶體與退出程序

函數/程序用途
AllocMem配置歸零記憶體區塊 (搭配 FreeMem)
AddExitProc註冊程式結束執行程序 (建議用 finalization)

6. 字串處理核心 (Ansi/Wide 版)

分類Ansi 版Wide 版用途
大小寫AnsiUpperCase/LowerCaseWideUpperCase/LowerCase轉換大小寫
比較AnsiCompareStr/Text/SameStr/TextWideCompareStr/Text/SameStr/Text比較/相等判斷
修剪Trim/TrimLeft/TrimRight同名多載移除不可見字元 (≤#31)
引用QuotedStr / AnsiQuotedStr—Pascal/自訂引用字元
去引用AnsiExtractQuotedStr / AnsiDequotedStr—還原引用字串本體
行尾AdjustLineBreaks—統一為 CRLF/LF
識別符IsValidIdent—驗證合法 Pascal 識別符

7. 整數/布林轉換

函數用途備註
IntToStr / IntToHex整數 → 字串/十六進制IntToHex 指定最小寬度補 0
StrToInt / StrToIntDef / TryStrToInt字串 → 整數Try 版最安全
StrToInt64 / Def / Try字串 → Int64
StrToBool / Def / Try字串 → 布林D6 Bug:TryStrToBool 需修正 TrueBoolStrs/FalseBoolStrs
BoolToStr布林 → 字串UseBoolStrs=True 時輸出 -1/0

8. 資源字串

  • LoadStr(Ident):載入字串資源
  • FmtLoadStr(Ident, Args):格式化載入字串資源

9. 檔案/目錄完整操作集

分類函數用途/回傳
低層檔案控制代碼FileOpen開啟檔案,回傳 Handle (失敗 < 0),Mode: fmOpenRead/Write/ReadWrite
FileCreate建立檔案,回傳 Handle
FileRead讀取至緩衝區,回傳位元組數
FileWrite寫入緩衝區,回傳位元組數
FileSeek移動指標,Origin: 0=首, 1=目前, 2=尾
FileClose關閉 Handle
檔案資訊與屬性FileAge檔案建立時間 (整數編碼),不存在 -1
FileExists檔案是否存在 (含隱藏)
DirectoryExists目錄是否存在
ForceDirectories遞迴建立多層目錄
FileGetDate / FileSetDate取得/設定檔案修改時間
FileGetAttr / FileSetAttr取得/設定檔案屬性
FileIsReadOnly / FileSetReadOnly唯讀檢查/設定
檔案操作DeleteFile刪除檔案
RenameFile重命名
ChangeFileExt變更副檔名 (注意需加點)
路徑拆解ExtractFilePath目錄路徑 (含尾斜線)
ExtractFileDir目錄路徑 (不含尾斜線)
ExtractFileDrive磁碟機代號
ExtractFileName純檔名
ExtractFileExt副檔名 (含點)
ExpandFileName相對路徑轉完整路徑
ExpandFileNameCase大小寫敏感擴展路徑
ExpandUNCFileNameUNC 路徑展開
ExtractRelativePath基準路徑 → 目標相對路徑
ExtractShortPathName8.3 短檔名
FileSearch目錄列表中搜尋檔案
磁碟空間DiskFree可用空間 (Byte, Int64),Drive: 0=目前, 1=A...
DiskSize總空間
時間編碼互轉FileDateToDateTime檔案時間整數 → TDateTime
DateTimeToFileDateTDateTime → 檔案時間整數
目錄操作GetCurrentDir目前工作目錄
SetCurrentDir設定工作目錄
目錄建立/刪除CreateDir建立單層目錄
RemoveDir刪除空目錄
ForceDirectories遞迴建立多層目錄
檔案搜尋FindFirst開始搜尋,Attr: faAnyFile/faDirectory...,回傳 0 成功
FindNext繼續搜尋
FindClose結束搜尋 (必須呼叫釋資源)

實用範例精選

遞迴建立目錄並檢查磁碟空間


if ForceDirectories('D:\Data\Project\Backup') then
  if DiskFree(4) > 100 * 1024 * 1024 then // 100MB
    // 執行備份...

安全轉換使用者輸入日期


var DT: TDateTime;
begin
  if TryStrToDateTime(Edit1.Text, DT) then
    DateTimePicker1.DateTime := DT
  else
    ShowMessage('日期格式錯誤');
end;

列舉目錄所有檔案


var SR: TSearchRec;
begin
  if FindFirst('C:\Temp\*.*', faAnyFile, SR) = 0 then try
    repeat
      Memo1.Lines.Add(SR.Name);
    until FindNext(SR) <> 0;
  finally FindClose(SR); end;

本部分涵蓋的函數構成 Delphi 應用程式 80% 以上的系統互動基礎,建議開發者熟記高頻函數簽名,並善用 Try* 系列避免例外干擾主流程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved