windows-nt/Source/XPSP1/NT/base/ntsetup/oobe/msobcomm/ccsv.h
2020-09-26 16:20:57 +08:00

38 lines
1.1 KiB
C++

#ifndef _CCSV
#define _CCSV
#define CCSVFILE_BUFFER_SIZE 2*512
// simple file i/o for comma seperated files
class CCSVFile
{
public:
void far * operator new( size_t cb ) { return GlobalAlloc(GPTR, cb); };
void operator delete( void far * p ) {GlobalFree(p); };
CCSVFile();
~CCSVFile();
BOOLEAN Open(LPCWSTR pszFileName);
BOOLEAN ReadToken(LPWSTR pszDest, DWORD cbMax); // reads up to comma or newline, returns fFalse on EOF
BOOLEAN SkipTillEOL(void); // reads up to EOL
void Close(void);
inline int ILastRead(void)
{
return m_iLastRead;
}
private:
BOOL FReadInBuffer(void);
inline int ChNext(void);
CHAR m_rgchBuf[CCSVFILE_BUFFER_SIZE]; //buffer
WCHAR m_rgwchBuf[CCSVFILE_BUFFER_SIZE];
LPWSTR m_pchBuf; //pointer to the next item in the buffer to read
LPWSTR m_pchLast; //pointer to the last item in the buffer
int m_iLastRead; //the character last read.
DWORD m_cchAvail;
HANDLE m_hFile;
}; // ccsv
#endif //_CCSV