#include "hlineparser.h"
#include <string.h>
#include "TObjString.h"
HLineParser::HLineParser(void) {
}
HLineParser::~HLineParser(void) {
fStrings.Delete();
}
Bool_t HLineParser::parse(Text_t *line) {
Text_t string[255];
Text_t *token;
Int_t nVars=0,nStrings=0;
strcpy(string,line);
fStrings.Delete();
fVars.Reset();
token=strtok(string,"%");
while (token!=NULL) {
nStrings++;
token=strtok(NULL,"%");
nVars++;
if (token) token=strtok(NULL,"%");
}
fVars.Set(nVars);
fStrings.Expand(nStrings);
strcpy(string,line);
nStrings=0; nVars=0;
token=strtok(string,"%");
while (token!=NULL) {
fStrings.Add(new TObjString(token));
token=strtok(NULL,"%");
sscanf(token,"%i",&fVars[nVars]);
nVars++;
if (token) token=strtok(NULL,"%");
}
return kTRUE;
}
Bool_t HLineParser::eval(TArrayI *vals,Text_t *string) {
TIter nextString(&fStrings);
Int_t varN=0;
TObjString *st;
Text_t buffer[255];
strcpy(string,"");
while ( (st=(TObjString *)nextString())!=NULL) {
strcat(string,st->GetName());
if (varN<fVars.fN) {
sprintf(buffer,"%i",vals->At(fVars[varN]));
varN++;
strcat(string,buffer);
}
}
return kTRUE;
}
ClassImp(HLineParser)
Last change: Sat May 22 12:58:56 2010
Last generated: 2010-05-22 12:58
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.