Ejemplo n.º 1
0
        public bool Parse(ref string inRawLine, ILinearFormat inFieldOwner)
        {
            // make sure the requested substring actually exists
            if ((StartIndex >= inRawLine.Length) || (EndIndex > inRawLine.Length))
            {
                return(false);
            }

            string substring = inRawLine.Substring(StartIndex, EndIndex - StartIndex);

            // convert the substring and assign it to the correct variable
            bool valueAssigned = false;

            switch (DataType)
            {
            case SegmentType.Number:
                valueAssigned = inFieldOwner.SetFieldByName(VariableName, Convert.ToInt32(substring));
                break;

            case SegmentType.String:
                valueAssigned = inFieldOwner.SetFieldByName(VariableName, substring);
                break;

            case SegmentType.Currency:
                float rawCurrency = (float)Convert.ToInt32(substring);
                valueAssigned = inFieldOwner.SetFieldByName(VariableName, rawCurrency / 100f);
                break;

            case SegmentType.Flags:
                valueAssigned = inFieldOwner.SetFieldByName(VariableName, ConvertFlags(substring));
                break;

            default:
                break;
            }

            return(valueAssigned);
        }
Ejemplo n.º 2
0
 public LinearParser(string inSource, ILinearFormat inFormat) : base(inSource)
 {
     Format = inFormat;
 }