public static void WriteSchema(FieldSpecList definition, string filename, DefinitionFormat format) { switch (format) { case DefinitionFormat.Text: using (var w = new StreamWriter(filename)) { foreach (var item in definition) { w.WriteLine("{0,-20} {1,-20} {2}", item.Type, item.Name, item.ToSpec()); } w.WriteLine(definition.ToRecordLength()); w.Flush(); w.Close(); } break; case DefinitionFormat.XML: { var s = Serializer.Serialize(definition, Serializer.SerializeMethods.Xml); File.WriteAllText(filename, s); } break; default: throw new ArgumentException("format=" + format); } }
private static FieldSpecList ReadTextSchema(IEnumerable <string> enumerator) { var result = new FieldSpecList(); foreach (var item in enumerator) { string line = RemoveComments(item).ToLower().Trim(' ', '\t'); if (string.IsNullOrEmpty(line)) { continue; } var len = FieldSpecList.ReadRecordLength(line); if (len.HasValue) { result.RecordLength = len.Value; continue; } var spec = FieldSpec.ToFieldSpec(line); result.Add(spec); } return(result); }