📄 help-function.txt
字号:
S: String;
FileDate1:Integer;
DateTime1:TDateTime;
begin
FileDate1 := FileAge('c:\delphi_d\delphi_help1.txt');
DateTime1 := FileDateToDateTime(FileDate1);
S := DateTimeToStr(DateTime1);
Label1.Caption:=S;
end;
--------------------------------------------------------
FileDateToDateTime 将DOS型态的日期时间转换为TDateTime型态.
--------------------------------------------------------
Unit SysUtils
函数原型 function FileDateToDateTime(FileDate: Integer):TDateTime;
-----------------------------------------------------------------------------
DateTimeToFileDate 将TDateTime型态的日期时间转换为 DOS型态.
-----------------------------------------------------------------------------
Unit SysUtils
函数原型 function DateTimeToFileDate(DateTime: TDateTime):Integer;
FileGetDate 传回档案的日期及时间(DOS型态).
Unit SysUtils
函数原型 function FileGetDate(Handle: Integer): Integer;
说明 就是档案总管中档案内容裹面的修改日期.
范例 procedure TForm1.Button1Click(Sender: TObject);
var
FileHandle:Integer;
S: String;
FileDate1:Integer;
DateTime1:TDateTime;
begin
FileHandle :=FileOpen('c:\delphi_d\delphi_help2.txt',
fmOpenReadWrite);
if FileHandle > 0 then
Begin
FileDate1 := FileGetDate(FileHandle);
DateTime1 := FileDateToDateTime(FileDate1);
S := DateTimeToStr(DateTime1);
FileClose(FileHandle);
End
else
S := 'Open File Error';
Label1.Caption:=S;
end;
-----------------------------------------------------------------------------
FileSetDate 设定档案的日期及时间(DOS型态).
-----------------------------------------------------------------------------
Unit SysUtils
函数原型 function FileSetDate(Handle: Integer; Age: Integer): Integer;
说明 传回值为0表示成功.
-----------------------------------------------------------------------------
DeleteFile 删除档案
-----------------------------------------------------------------------------
Unit SysUtils
函数原型 function DeleteFile(const FileName: string): Boolean;
范例 一 DeleteFile('DELETE.ME');
范例 二 if FileExists(FileName) then
if MessageDlg('Do you really want to delete ' +
ExtractFileName(FileName) + '?'), []) = IDYes then
DeleteFile(FileName);
##FileExists, DeleteFile Example
-----------------------------------------------------------------------------
RenameFile 更改档名
-----------------------------------------------------------------------------
Unit SysUtils
函数原型 function RenameFile(const OldName, NewName: string):Boolean;
范例
procedure TForm1.Button1Click(Sender: TObject);
var
BackupName: string;
FileHandle: Integer;
StringLen: Integer;
X: Integer;
Y: Integer;
begin
if SaveDialog1.Execute then
begin
if FileExists(SaveDialog1.FileName) then
begin
BackupName := ExtractFileName(SaveDialog1.FileName);
BackupName := ChangeFileExt(BackupName, '.BAK');
if not RenameFile(SaveDialog1.FileName, BackupName) then
raise Exception.Create('Unable to create backup file.');
end;
FileHandle := FileCreate(SaveDialog1.FileName);
{ Write out the number of rows and columns in the grid. }
FileWrite(FileHandle,
StringGrid1.ColCount, SizeOf(StringGrid1.ColCount));
FileWrite(FileHandle,
StringGrid1.RowCount, SizeOf(StringGrid1.RowCount));
for X := 0 to StringGrid1.ColCount ? 1 do
begin
for Y := 0 to StringGrid1.RowCount ? 1 do
begin
{ Write out the length of each string, followed by the string itself. }
StringLen := Length(StringGrid1.Cells[X,Y]);
FileWrite(FileHandle, StringLen, SizeOf(StringLen));
FileWrite(FileHandle,
StringGrid1.Cells[X,Y], Length(StringGrid1.Cells[X,Y]);
end;
end;
FileClose(FileHandle);
end;
end;
-----------------------------------------------------------------------------
DiskFree 磁碟机剩馀空间(Bytes)
-----------------------------------------------------------------------------
Unit SysUtils
函数原型 function DiskFree(Drive: Byte): Integer;
范例 var
S: string;
begin
S := IntToStr(DiskFree(0) div 1024) + ' Kbytes free.';
Label1.Caption:=S;
end;
说明 Drive
0=目前磁碟机,1=A磁碟机,2=B磁碟机...传回值若为-1,表示磁碟机侦测错误.
范例
var
S: string;
AmtFree: Int64;
Total: Int64;
begin
AmtFree := DiskFree(0);
Total := DiskSize(0);
S := IntToStr(AmtFree div Total) + 'percent of the space on drive 0 is free: ' (AmtFree div 1024) + ' Kbytes free. ';
Canvas.TextOut(10, 10, S);
end;
##DiskFree, DiskSize Example
-----------------------------------------------------------------------------
DiskSize 磁碟机空间大小(Bytes)
-----------------------------------------------------------------------------
Unit SysUtils
函数原型 function DiskSize(Drive: Byte): Integer;
范例 var
S: string;
begin
S := IntToStr(DiskSize(0) div 1024) + ' Kbytes free.';
Label1.Caption:=S;
end;
说明 Drive
0=目前磁碟机,1=A磁碟机,2=B磁碟机....传回值若为-1,表示磁碟机侦测错误.
##DiskFree, DiskSize Example
-----------------------------------------------------------------------------
FileExists 判断档案是否存在.
-----------------------------------------------------------------------------
Unit SysUtils
函数原型 function FileExists(const FileName: string): Boolean;
类似 FileExists, RenameFile, FileCreate, FileWrite, FileClose, ExtractFileName Example
范例
procedure TForm1.Button1Click(Sender: TObject);
var
BackupName: string;
FileHandle: Integer;
StringLen: Integer;
X: Integer;
Y: Integer;
begin
if SaveDialog1.Execute then
begin
if FileExists(SaveDialog1.FileName) then
begin
BackupName := ExtractFileName(SaveDialog1.FileName);
BackupName := ChangeFileExt(BackupName, '.BAK');
if not RenameFile(SaveDialog1.FileName, BackupName) then
raise Exception.Create('Unable to create backup file.');
end;
FileHandle := FileCreate(SaveDialog1.FileName);
{ Write out the number of rows and columns in the grid. }
FileWrite(FileHandle,
StringGrid1.ColCount, SizeOf(StringGrid1.ColCount));
FileWrite(FileHandle,
StringGrid1.RowCount, SizeOf(StringGrid1.RowCount));
for X := 0 to StringGrid1.ColCount ? 1 do
begin
for Y := 0 to StringGrid1.RowCount ? 1 do
begin
{ Write out the length of each string, followed by the string itself. }
StringLen := Length(StringGrid1.Cells[X,Y]);
FileWrite(FileHandle, StringLen, SizeOf(StringLen));
FileWrite(FileHandle,
StringGrid1.Cells[X,Y], Length(StringGrid1.Cells[X,Y]);
end;
end;
FileClose(FileHandle);
end;
end;
##FileExists, DeleteFile Example
##FileExists, RenameFile, FileCreate, FileWrite, FileClose, ExtractFileName Example
-----------------------------------------------------------------------------
FileOpen 开档.
-----------------------------------------------------------------------------
Unit SysUtils
函数原型 function FileOpen(const FileName: string; Mode:
Integer):Integer;
**** 开档失败传回-1.
说明 以下有关档案读取都属低阶,如Dos Int 21h中有关档案的部
分.
fmOpenRead = $0000;
fmOpenWrite = $0001;
fmOpenReadWrite = $0002;
fmShareCompat = $0000;
fmShareExclusive = $0010;
fmShareDenyWrite = $0020;
fmShareDenyRead = $0030;
fmShareDenyNone = $0040;
fmOpenRead Open for read access only.
FmOpenWrite Open for write access only.
FmOpenReadWrite Open for read and write access.
fmShareCompat Compatible with the way FCBs are
opened.
fmShareExclusive Read and write access is denied.
fmShareDenyWrite Write access is denied.
fmShareDenyRead Read access is denied.
fmShareDenyNone Allows full access for others.
范例
procedure OpenForShare(const FileName: String);
var
FileHandle : Integer;
begin
FileHandle := FileOpen(FileName, fmOpenWrite or fmShareDenyNone);
if FileHandle > 0 then
{valid file handle}
else
{Open error: FileHandle = negative DOS error code}
end;
范例
procedure TForm1.Button1Click(Sender: TObject);
var
iFileHandle: Integer;
iFileLength: Integer;
iBytesRead: Integer;
Buffer: PChar;
i: Integer
begin
if OpenDialog1.Execute then
begin
try
iFileHandle := FileOpen(OpenDialog1.FileName, fmOpenRead);
iFileLength := FileSeek(iFileHandle,0,2);
FileSeek(iFileHandle,0,0);
Buffer := PChar(AllocMem(iFileLength + 1));
iBytesRead = FileRead(iFileHandle, Buffer, iFileLength);
FileClose(iFileHandle);
for i := 0 to iBytesRead-1 do
begin
StringGrid1.RowCount := StringGrid1.RowCount + 1;
StringGrid1.Cells[1,i+1] := Buffer[i];
StringGrid1.Cells[2,i+1] := IntToStr(Integer(Buffer[i]));
end;
finally
FreeMem(Buffer);
end;
end;
end;
##FileOpen, FileSeek, FileRead Example
-----------------------------------------------------------------------------
FileCreate 建档
-----------------------------------------------------------------------------
Unit SysUtils
函数原型 function FileCreate(const FileName: string): Integer;
范例
procedure TForm1.Button1Click(Sender: TObject);
var
BackupName: string;
FileHandle: Integer;
StringLen: Integer;
X: Integer;
Y: Integer;
begin
if SaveDialog1.Execute then
begin
if FileExists(SaveDialog1.FileName) then
begin
BackupName := ExtractFileName(SaveDialog1.FileName);
BackupName := ChangeFileExt(BackupName, '.BAK');
if not RenameFile(SaveDialog1.FileName, BackupName) then
raise Exception.Create('Unable to create backup file.');
end;
FileHandle := FileCreate(SaveDialog1.FileName);
{ Write out the number of rows and columns in the grid. }
FileWrite(FileHandle,
StringGrid1.ColCount, SizeOf(StringGrid1.ColCount));
FileWrite(FileHandle,
StringGrid1.RowCount, SizeOf(StringGrid1.RowCount));
for X := 0 to StringGrid1.ColCount ? 1 do
begin
for Y := 0 to StringGrid1.RowCount ? 1 do
begin
{ Write out the length of each string, followed by the string itself. }
StringLen := Length(StringGrid1.Cells[X,Y]);
FileWrite(FileHandle, StringLen, SizeOf(StringLen));
FileWrite(FileHandle,
StringGrid1.Cells[X,Y], Length(StringGrid1.Cells[X,Y]);
end;
end;
FileClose(FileHandle);
end;
end;
##FileExists, RenameFile, FileCreate, FileWrite, FileClose, ExtractFileName Example
-----------------------------------------------------------------------------
FileClose 关档
-----------------------------------------------------------------------------
Unit SysUtils
函数原型 procedure FileClose(Handle: Integer);
范例
procedure TForm1.Button1Click(Sender: TObject);
var
BackupName: string;
FileHandle: Integer;
StringLen: Integer;
X: Integer;
Y: Integer;
begin
if SaveDialog1.Execute then
begin
if FileExists(SaveDialog1.FileName) then
begin
BackupName := ExtractFileName(SaveDialog1.FileName);
BackupName := ChangeFileExt(BackupName, '.BAK');
if not RenameFile(SaveDialog1.FileName, BackupName) then
raise Exception.Create('Unable to create backup file.');
end;
FileHandle := FileCreate(SaveDialog1.FileName);
{ Write out the number of rows and columns in the grid. }
FileWrite(FileHandle,
StringGrid1.ColCount, SizeOf(StringGrid1.ColCount));
FileWrite(FileHandle,
StringGrid1.RowCount, SizeOf(StringGrid1.RowCount));
for X := 0 to StringGrid1.ColCount ? 1 do
begin
for Y := 0 to StringGrid1.RowCount ? 1 do
begin
{ Write out the length of each string, followed by the string itself. }
StringLen := Length(StringGrid1.Cells[X,Y]);
FileWrite(FileHandle, StringLen, SizeOf(StringLen));
FileWrite(FileHandle,
StringGrid1.Cells[X,Y], Length(StringGrid1.Cells[X,Y]);
end;
end;
FileClose(FileHandle);
end;
end;
##FileExists, RenameFile, FileCreate, FileWrite, FileClose, ExtractFileName Example
============================================
**** 它是以Handle为叁数.
============================================
FileRead 读取档案
-----------------------------------------------------------------------------
Unit SysUtils
函数原型 function FileRead(Handle: Integer; var Buffer; Count: Integer):Integer;
范例
procedure TForm1.Button1Click(Sender: TObject);
var
iFileHandle: Integer;
iFileLength: Integer;
iBytesRead: Integer;
Buffer: PChar;
i: Integer
begin
if OpenDialog1.Execute then
begin
try
iFileHandle := FileOpen(OpenDialog1.FileName, fmOpenRead);
iFileLength := FileSeek(iFileHandle,0,2);
FileSeek(iFileHandle,0,0);
Buffer := PChar(AllocMem(iFileLength + 1));
iBytesRead = FileRead(iFileHandle, Buffer, iFileLength);
FileClose(iFileHandle);
for i := 0 to iBytesRead-1 do
begin
StringGrid1.RowCount := StringGrid1.RowCount + 1;
StringGrid1.Cells[1,i+1] := Buffer[i];
StringGrid1.Cells[2,i+1] := IntToStr(Integer(Buffer[i]));
end;
finally
FreeMem(Buffer);
end;
end;
end;
##FileOpen, FileSeek, FileRead Example
-----------------------------------------------------------------------------
FileWrite 写入档案
-----------------------------------------------------------------------------
Unit SysUtils
函数原型 function FileWrite(Handle: Integer; const Buffer; Count: Integer): Integer;
范例
procedure TForm1.Button1Click(Sender: TObject);
var
BackupName: string;
FileHandle: Integer;
StringLen: Integer;
X: Integer;
Y: Integer;
begin
if SaveDialog1.Execute then
begin
if FileExists(SaveDialog1.FileName) then
begin
BackupName := ExtractFileName(SaveDialog1.FileName);
BackupName := ChangeFileExt(BackupName, '.BAK');
if not RenameFile(SaveDialog1.FileName, BackupName) then
raise Exception.Create('Unable to create backup file.');
end;
FileHandle := FileCreate(SaveDialog1.FileName);
{ Write out the number of rows and columns in the grid. }
FileWrite(FileHandle,
StringGrid1.ColCount, SizeOf(StringGrid1.ColCount));
FileWrite(FileHandle,
StringGrid1.RowCount, SizeOf(StringGrid1.RowCount));
for X := 0 to StringGrid1.ColCount do
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -