//------------------------------------------------------------------------------ // FILE NAME: StringParser.h // // PURPOSE: Definition of the CStringParser class. // // DESCRIPTION: This class acepts a string and immediately parses it into // separate fields based on the delimiter character specified by // the programmer. The separated fields are stored in a // CStringArray, and the 0th element in the array contains the // original string. Access to the separated fields is 1-based // (the first field is in index 1, and so on). // // REVISION LOG: // DATE INIT REVISION COMMENT // -------- ---- -------- --------------------------------------------------- // // CHANGE HISTORY: // DATE INIT CHANGE DESCRIPTION // -------- ---- ------------------------------------------------------------- // 07/15/00 jms New file //------------------------------------------------------------------------------ #ifndef __STRINGPARSER_H #define __STRINGPARSER_H #include const int SP_NOTFOUND = -1; class CStringParser: public CObject { private: // data members CStringArray m_aStrings; int m_nCount; char m_cDelimiter; char m_cQuoter; // methods int ParseString(); int ParseStringWithQuoter(); public: // data members // ctor/dtor CStringParser(); CStringParser(CString sString, char cDelimiter); CStringParser(CString sString, char cDelimiter, char cQuoter); ~CStringParser(); // methods void Clear (); CString GetField (int nIndex); int GetCount () { return m_nCount; }; CString GetOriginalString () { return m_aStrings.GetAt(0); }; void ResetOriginalString(CString sString, char cDelimiter); void ResetOriginalString(CString sString, char cDelimiter, char cQuoter); CString FindExact (CString sText, int* nElement, BOOL bCaseSensitive=FALSE); CString Find (CString sText, int* nElement, BOOL bCaseSensitive=FALSE); }; #endif