📄 basicfile.pas
字号:
unit BasicFile;
interface
uses Classes, SysUtils;
type
TBasicFile = class
protected
Data: TMemoryStream;
function LdStream(Source: TStream; Dest: TMemoryStream): Boolean;
function LdFile(FileName: String; Dest: TMemoryStream): Boolean;
function SvStream(Source: TMemoryStream; Dest: TStream): Boolean;
function SvFile(Source: TMemoryStream; FileName: String): Boolean;
public
constructor Create; virtual;
destructor Destroy; override;
function LoadFromStream(Source: TStream): Boolean;
function LoadFromFile(FileName: String): Boolean;
function SaveToStream(Dest: TStream): Boolean;
function SaveToFile(FileName: String): Boolean;
function GetSize: Longint;
end;
implementation
constructor TBasicFile.Create;
begin
Data:=TMemoryStream.Create;
end;
destructor TBasicFile.Destroy;
begin
Data.Free;
inherited Destroy;
end;
function TBasicFile.LdStream(Source: TStream; Dest: TMemoryStream): Boolean;
var
res: Longint;
begin
LdStream:=True;
Source.Seek(0,soFromBeginning);
Dest.Clear;
res:=Dest.CopyFrom(Source,Source.Size);
if (res=0) or (res<Source.Size) then LdStream:=False;
end;
function TBasicFile.LdFile(FileName: String; Dest: TMemoryStream): Boolean;
var
FileStream: TFileStream;
ret: Boolean;
begin
ret:=True;
try
FileStream:=TFileStream.Create(FileName,fmOpenRead);
except
on Exception do ret:=False;
end;
if ret then LdFile:=LdStream(FileStream,Dest)
else LdFile:=False;
FileStream.Free;
end;
function TBasicFile.SvStream(Source: TMemoryStream; Dest: TStream): Boolean;
begin
Source.Seek(0,soFromBeginning);
Dest.CopyFrom(Source,Source.Size);
end;
function TBasicFile.SvFile(Source: TMemoryStream; FileName: String): Boolean;
var
FileStream: TFileStream;
ret: Boolean;
begin
ret:=True;
try
FileStream:=TFileStream.Create(FileName,fmCreate);
except
on Exception do ret:=False;
end;
if ret then SvFile:=SvStream(Source,FileStream)
else SvFile:=False;
FileStream.Free;
end;
function TBasicFile.LoadFromStream(Source: TStream): Boolean;
begin
LoadFromStream:=LdStream(Source,Data);
end;
function TBasicFile.LoadFromFile(FileName: String): Boolean;
begin
LoadFromFile:=LdFile(FileName,Data);
end;
function TBasicFile.SaveToStream(Dest: TStream): Boolean;
begin
SaveToStream:=SvStream(Data,Dest);
end;
function TBasicFile.SaveToFile(FileName: String): Boolean;
begin
SaveToFile:=SvFile(Data,FileName);
end;
function TBasicFile.GetSize: Longint;
begin
GetSize:=Data.Size;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -