+++ /dev/null
-#ifndef TextFile_h\r
-#define TextFile_h\r
-\r
-#include <stdio.h>\r
-\r
-struct TEXTFILEPOS\r
- {\r
- unsigned uOffset;\r
- unsigned uLineNr;\r
- unsigned uColNr;\r
- };\r
-\r
-const unsigned TextFileBufferSize = 256;\r
-\r
-class TextFile\r
- {\r
-private:\r
-// no default c'tor, not implemented\r
- TextFile();\r
-\r
-public:\r
- virtual ~TextFile();\r
-\r
- TextFile(const char szFileName[], bool bWrite = false);\r
- TextFile(FILE *ptrFile, const char *ptrFileName = "-");\r
- void Close() { fclose(m_ptrFile); m_ptrFile = 0; }\r
-\r
- bool GetLine(char szLine[], unsigned uBytes);\r
- bool GetTrimLine(char szLine[], unsigned uBytes);\r
- void GetLineX(char szLine[], unsigned uBytes);\r
-\r
- bool GetToken(char szToken[], unsigned uBytes, const char szCharTokens[] = "{}");\r
- void GetTokenX(char szToken[], unsigned uBytes, const char szCharTokens[] = "{}");\r
-\r
- void Skip();\r
- void SkipLine();\r
- void SkipWhite();\r
- bool SkipWhiteX();\r
- void Rewind();\r
- TEXTFILEPOS GetPos();\r
- void SetPos(TEXTFILEPOS Pos);\r
- bool GetChar(char &c);\r
- void GetCharX(char &c);\r
- void GetNonblankChar(char &c);\r
-\r
- unsigned GetLineNr() { return m_uLineNr; }\r
-\r
- void PutString(const char szLine[]);\r
- void PutFormat(const char szFormat[], ...);\r
- void PutChar(char c);\r
-\r
- const char *GetFileName() { return m_ptrName; }\r
-\r
- void PushBack(int c) { m_cPushedBack = c; }\r
-\r
- FILE *GetStdioFile() const { return m_ptrFile; }\r
-\r
-private:\r
- void Init(FILE *ptrFile, const char *ptrFileName);\r
-\r
-private:\r
- FILE *m_ptrFile;\r
- unsigned m_uLineNr;\r
- unsigned m_uColNr;\r
- char *m_ptrName;\r
- bool m_bLastCharWasEOL;\r
- int m_cPushedBack;\r
- };\r
-\r
-#endif // TextFile_h\r