internal static RawMMEFile ReadInformationFile(string filePath, bool readValues = false, MMEReadConfiguration config = null) { // TODO: refactor this function! if (config == null) { config = new MMEReadConfiguration(); } RawMMEFile rawMMEData = new RawMMEFile() { AdditionalComments = new List <string>(), Attributes = new List <MMEAttribute>(), Values = new List <double>(), }; using (StreamReader reader = new StreamReader(filePath, config.FileEncoding, config.DetectByteOrderMask)) { string uninterpretedLine = ""; while (!reader.EndOfStream) { uninterpretedLine = ReadAttribute(rawMMEData, reader); if (uninterpretedLine.Length > 0) { break; } } if (uninterpretedLine.Length > 0 && readValues) { ReadMMEValue(rawMMEData, uninterpretedLine, config); while (!reader.EndOfStream) { ReadMMEValue(rawMMEData, reader.ReadLine(), config); } } } return(rawMMEData); }
private static string ReadAttribute(RawMMEFile rawMMEData, StreamReader reader) { // TODO: refactor this function MMEAttribute newAttribute = null; string uninterpratedLine = MMEAttribute.ParseFromStream(reader, out newAttribute); if (newAttribute.Name == "" && newAttribute.Value == "") { if (newAttribute.Comments.Count > 0) { rawMMEData.AdditionalComments.AddRange(newAttribute.Comments); } } else { rawMMEData.Attributes.Add(newAttribute); } return(uninterpratedLine); }
private static void ReadMMEValue(RawMMEFile rawMMEData, string valueLine, MMEReadConfiguration config) { double parsedValue = ParseMMEValue(valueLine, config.InvariantNumberFormatInfo, config.MMENumberStyle); rawMMEData.Values.Add(parsedValue); }