procedure TForm1.ChangeFileCase;
var
FFileHandle:THandle;
FMapHandle:THandle;
FFileSize:integer;
FData:PByte;
PData:PChar;
begin
if not FileExists(FName) then
raise Exception.Create('File does not exist.')
else
FFileHandle := FileOpen(FName,fmOpenReadWrite);
if FFileHandle = INVALID_HANDLE_VALUE then
raise Exception.Create('Failed to open or creatr file.');
try
FData := MapViewOfFile(FMapHandle,FILE_MAP_ALL_ACCESS,0,0,FFileSize);
if FData = Nil then
raise Exception.Create('Failed to map view of file');
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;