📄 filemap.pas
字号:
unit filemap;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
fileName = 'myTest.txt';
type
TForm1 = class(TForm)
btnUpper: TButton;
btnLower: TButton;
txtContent: TMemo;
Label1: TLabel;
btnClose: TButton;
procedure FormCreate(Sender: TObject);
procedure btnUpperClick(Sender: TObject);
procedure btnLowerClick(Sender: TObject);
procedure btnCloseClick(Sender: TObject);
private
{ Private declarations }
public
UCase:Boolean;
procedure ChangeFileCase;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
txtContent.Clear();
txtContent.Lines.LoadFromFile(fileName);
//缺省将其转变为大写
UCase := True;
end;
procedure TForm1.btnUpperClick(Sender: TObject);
begin
UCase := true;
ChangeFileCase;
end;
procedure TForm1.btnLowerClick(Sender: TObject);
begin
UCase := false;
ChangeFileCase;
end;
procedure Tform1.ChangeFileCase;
var
FFileHandle : THandle;
FMapHandle : THandle;
FFileSize : Integer;
FData : PByte;
PData : PChar;
begin
if not FileExists(fileName) then
raise Exception.Create('文件不存在!')
else
FFileHandle := FileOPen(fileName,fmOPenReadWrite);
//如果创建文件失败,就抛出一个异常
if FFileHandle = INVALID_HANDLE_VALUE then
raise Exception.Create('打开或创建文件失败!');
try
FFileSize := GetFileSize(FFileHandle,nil);
FMapHandle := CreateFileMapping(FFileHandle,nil,PAGE_READWRITE,0,FFileSize,nil);
if FMapHandle = 0 then
raise Exception.Create('创建内存映射文件失败!');
finally
CloseHandle(FFileHandle);
end;
try
FData := MapViewOfFile(FMapHandle,FILE_MAP_ALL_ACCESS,0,0,FFileSize);
if FData = nil then
raise Exception.Create('映射文件失败!');
finally
CloseHandle(FMapHandle);
end;
try
PData := PChar(FData);
inc(PData,FFileSize);
PData^ := #0;
if UCase then
StrUpper(PChar(FData))
else
StrLower(PChar(FData));
finally
UnmapViewOfFile(FData);
end;
txtContent.Lines.Clear();
txtContent.Lines.LoadFromFile(fileName);
end;
procedure TForm1.btnCloseClick(Sender: TObject);
begin
Form1.Close();
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -