3,120
社区成员
发帖
与我相关
我的任务
分享
TUint16 table(0);
TInt n(0);
TInt id(0);
TInt price(0);
TBuf<30> name;
_LIT(KRecord, "1,2,0,23,Ba");
TLex lex(KRecord);
TLex lexForToken;
TChar ch;
TBuf<30> token;
TInt i(0);
while((ch = lex.Get()) != 0 )
{
while ((ch=lex.Peek()) != ',' && (ch = lex.Peek()) != 0)
lex.Inc();
lexForToken=lex.MarkedToken();
switch(i)
{
case 0:
lexForToken.Val(table,EDecimal);
break;
case 1:
lexForToken.Val(n);
break;
case 2:
lexForToken.Val(id);
break;
case 3:
lexForToken.Val(price);
break;
case 4:
name=lex.MarkedToken();
break;
default:
break;
}
i++;
lex.Inc();
lex.Mark();
}
TInt len = 0;
TInt nDouNum = 0;
const TDesC& data = ...; //
while (ETrue)
{
TPtrC ptr = data.Mid(len);
TInt pos = ptr.Find(',');
if (pos == KErrNotFound) break;
if (nDouNum == 0)
{
// parse as number
TInt num0;
TLex lex(ptr.Mid(0, pos));
if (lex.Val(num0) == KErrNone)
{
// do with num0
}
}
else if (nDouNum == 1)
{
...
}
len += pos; //
++len; // skip ,
++ nDouNum; //
}