Files
Work/common/FILE.HPP
2024-08-07 09:09:36 -04:00

103 lines
1.9 KiB
C++

#ifndef _COMMON_FILE_HPP_
#define _COMMON_FILE_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_STDIO_HPP_
#include <common/stdio.hpp>
#endif
#ifndef _COMMON_STRING_HPP_
#include <common/string.hpp>
#endif
class File
{
public:
enum SeekMethod{SeekSet=SEEK_SET,SeekCur=SEEK_CUR,SeekEnd=SEEK_END};
File(void);
File(String pathFileName,String access="rb");
File(const File &someFile);
virtual ~File();
File &operator=(const File &someFile);
bool operator==(const File &someFile);
bool open(String pathFileName,String access="rb");
bool close(void);
bool rewind(void);
bool seek(long pos,SeekMethod seekMethod=SeekSet)const;
DWORD tell(void)const;
DWORD length(void)const;
const String &pathFileName(void)const;
const String &access(void)const;
DWORD readLine(String &lineString);
DWORD read(void *pData,int extent);
DWORD read(BYTE &value);
DWORD read(WORD &value);
DWORD read(DWORD &value);
DWORD read(int &value);
DWORD read(double &value);
DWORD read(char *lpBuffer,WORD lengthData,int stopChar);
DWORD write(int value);
DWORD write(double value);
DWORD write(BYTE value);
DWORD write(WORD value);
DWORD write(DWORD value);
bool write(const String &string);
DWORD write(const void *lpBuffer,DWORD lengthData);
bool write(void *pData,DWORD extent);
bool writeLine(const String &lineString);
bool operator+=(DWORD sizeIncrement);
bool operator++(void);
bool operator++(int postFixDummy);
bool operator-=(DWORD sizeDecrement);
bool operator--(void);
bool operator--(int postFixDummy);
bool flush(void);
bool eof(void)const;
bool isOkay(void)const;
FILE *getFile(void);
private:
enum {CarriageReturn=0x0D,LineFeed=0x0A,TabChar=0x09,NullChar=0x00};
FILE *mpFilePointer;
String mPathFileName;
String mAccess;
};
inline
FILE *File::getFile(void)
{
return mpFilePointer;
}
#endif