private static IEnumerable <string> GetFieldValues(string line, CifRecordBase lineRecord) { List <string> fieldValues = new List <String>(); int pos = 0; foreach (FieldInfo fieldInfo in lineRecord.Fields) { fieldValues.Add(line.Substring(pos, fieldInfo.Length)); pos = pos + fieldInfo.Length; } return(fieldValues); }
private List <string> ParseLine(string line, IEnumerable <CifRecordBase> recordDefs) { List <string> lineValues = new List <string>(); CifRecordBase lineRecord = recordDefs .FirstOrDefault(r => line.StartsWith(r.RecordIdentifier)); if (lineRecord == null) { return(lineValues); } lineValues.AddRange(GetFieldValues(line, lineRecord)); return(lineValues); }