jsFile
This handy non-visual component encapsulates basic File I/O.
Example:
jsFile.FileName := 'test.txt'; // this property
set at design time
jsFile.FileType := ftText; // this property set at design time
jsFile.FileAction := faRead // this property set at design time
jsFile.OpenFile; // opens the file
jsFile.ReadTextLine(sLine); // reads a line into string sLine
ShowMessage('The line is ' + sLine);
jsFile.CloseFile;
type TFileType = (ftText, ftBinary);
type TFileAction = (faRead, faWrite);
type EFileError = Class(Exception);
TjsFile = class(TComponent)
private
FbFileOpened : Boolean;
FFileName : String;
FFileList : TStringList;
FFile : File of Byte;
FFileType : TFileType;
FFileAction : TFileAction;
function GetFileName : String;
procedure SetFileName(sFileName : String);
function RecursiveDirDelete(sDir : String) : Boolean;
function IsValidFile(sFileName : String) : Boolean;
function IsValidDir(sDirName : String) : Boolean;
protected
public
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
function GetSizeInBytes : LongInt;
function OpenFile : Boolean;
procedure CloseFile;
function ReadAByte(var AByte : Byte) : Boolean;
function WriteAByte(AByte : Byte) : Boolean;
function ReadTextLine(var sLine : String) : Boolean;
function WriteTextLine(sLine : String) : Boolean;
function ReadBinaryBuffer(var sBuffer : AnsiString; iBytesToRead :
LongInt) : Boolean;
function WriteBinaryBuffer(sBuffer : AnsiString; iBytesToWrite :
LongInt) : Boolean;
function SeekFromStart(iOffset : LongInt) : Boolean;
function SeekFromEnd(iOffset : LongInt) : Boolean;
function CopyFileTo(sDestName : String) : Boolean;
function CopyFileListTo(sDestDir : String) : Boolean;
function CopyDirAndItsChildDirs(sSourceDir, sDestDir : String) :
Boolean;
function DeleteFile : Boolean;
function DeleteDirAndItsSubdirs(sDir : String) : Boolean;
published
property FileName : String read GetFileName write SetFileName;
property FileList : TStringList read FFileList write FFileList;
property FileType : TFileType read FFileType write FFileType;
property FileAction : TFileAction read FFileAction write FFileAction;
end;