用TParser可以分析一个文本文件或字符串中的内容:可以识别符号、字符串、int、float,中文几种类型。
void __fastcall TForm1::Button36Click(TObject *Sender)
{
char* str = "'say' one world one dream #27979#35797 2.9";
float *Cmd;
TStringStream *ss = new TStringStream(str);
TParser *pParser = new TParser(ss);
int i = 0;
Cmd = new float[8];
while(pParser->Token != toEOF)
{
String strTokenValue = pParser->TokenString();
int Pos = pParser->SourcePos();
int Line = pParser->SourceLine;
char cTokenType = pParser->Token;
switch(cTokenType)
{
case toSymbol:
Memo1->Lines->Add(strTokenValue + " 是一个符号");
break;
case toInteger:
Memo1->Lines->Add(strTokenValue + " 是一个int");
break;
case toFloat:
Memo1->Lines->Add(strTokenValue + " 是一个float");
break;
case toString:
Memo1->Lines->Add(strTokenValue + " 是一个字符串");
break;
case toWString:
Memo1->Lines->Add(strTokenValue + " 是一个宽字符串");
break;
default:
ShowMessage("包含非法字符!");
break;
}
if(pParser->NextToken() == toEOF)
break;
}
delete pParser;
delete ss;
}
注意:字符串要用‘’括起来,中文用#开头的Unicode。如:?、:等都是非法字符(除#外)