// StringTokenizer.cpp: implementation of the CStringTokenizer class.
|
//
|
//////////////////////////////////////////////////////////////////////
|
|
#include "stdafx.h"
|
#include "StringTokenizer.h"
|
|
//////////////////////////////////////////////////////////////////////
|
// Construction/Destruction
|
//////////////////////////////////////////////////////////////////////
|
|
CStringTokenizer::CStringTokenizer(LPCTSTR lpsz, TCHAR chDelimiter):
|
m_nPos(0),
|
m_chDelimiter(chDelimiter)
|
{
|
m_str = lpsz;
|
}
|
|
CStringTokenizer::~CStringTokenizer()
|
{
|
}
|
|
BOOL CStringTokenizer::Next(CString &str)
|
{
|
if( m_nPos == -1 )
|
return false; // µ½ÁË×ÖÌõ·û´®½áβ Ç°ÒÆÁË,±¾À´·ÅÔÚ Find µ÷ÓÃÖ®ºóµÄ 2009/01/05
|
|
long nPos = m_str.Find(m_chDelimiter, m_nPos);
|
|
if( nPos != -1 )
|
{
|
str = m_str.Mid(m_nPos, nPos - m_nPos);
|
m_nPos = nPos +1;
|
return true;
|
}
|
else
|
{
|
// ×îºóÒ»¸ö
|
str = m_str.Mid( m_nPos );
|
m_nPos = -1;
|
return true;
|
}
|
|
str.Empty();
|
return false;
|
}
|
|
BOOL CStringTokenizer::Back( CString &str )
|
{
|
if ( m_nPos -1 )
|
{
|
str.Empty();
|
return false;
|
}
|
|
str = m_str.Mid( m_nPos );
|
return true;
|
}
|