U
Header
class parser
{
public:
parser(void);
~parser(void);
bool parseall(CString parsestring,CString searchstring,CStringArray &retarray,CString firstsearchstring);
int counter;
private:
int pos;
int lastpos;
int laengelastsuchzeichen;
};
cpp
#include "StdAfx.h"
#include ".\parser.h"
parser::parser(void)
{
pos = 0;
lastpos = 0;
laengelastsuchzeichen = 1;
}
parser::~parser(void)
{
}
bool parser::parseall(CString parsestring,CString searchstring, CStringArray &retarray,CString firstsearchstring)
{
int count = -1;
if (!firstsearchstring.IsEmpty())
{
count = parsestring.Find(firstsearchstring,0);
if (count == -1)
{
}
else
{
retarray.Add(parsestring.Mid(0,count));
parsestring.Delete(0,count + firstsearchstring.GetLength());
parsestring.TrimLeft();
count = -1;
}
}
do
{
count = parsestring.Find(searchstring,0);
if (count == -1)
{
parsestring.TrimRight();
retarray.Add(parsestring);
}
else
{
retarray.Add(parsestring.Mid(0,count));
parsestring.Delete(0,count + searchstring.GetLength());
parsestring.TrimLeft();
}
} while (count != -1);
return true;
}
Aufruf
parser parse;
CStringArray retarray;
CString line("hallo,du,du,du,wie,");
parse.parseall(line,",",retarray,",");
retarray.ElementAt(x);