protected int SetGroup(StringField grpNoFld, string msgstr, int pos, FieldMap fieldMap, DataDictionary.IGroupSpec dd, DataDictionary.DataDictionary sessionDataDictionary, DataDictionary.DataDictionary appDD)
{
int delim = dd.Delim;
int grpPos = pos;
Group grp = null;
while (pos < msgstr.Length)
{
grpPos = pos;
StringField f = ExtractField(msgstr, ref pos, sessionDataDictionary, appDD);
if (f.Tag == delim)
{
if (grp != null)
{
fieldMap.AddGroup(grp);
}
grp = new Group(grpNoFld.Tag, delim);
}
else if (!dd.IsField(f.Tag))
{
if (grp != null)
{
fieldMap.AddGroup(grp);
}
return grpPos;
}
grp.SetField(f);
if(dd.IsGroup(f.Tag))
{
pos = SetGroup(f, msgstr, pos, grp, dd.GetGroupSpec(f.Tag), sessionDataDictionary, appDD);
}
}
return grpPos;
}