/// <summary> /// Wczytuje zbiór ucz¹cy ze strumienia. /// </summary> /// <param name="stream">Strumieñ zawieraj¹cy zbiór ucz¹cy</param> /// <exception cref="ApplicationException">Strumieñ ma nieprawid³owy format. /// </exception> /// <returns>Wczytany zbiór ucz¹cy lub <c>null</c>, jeœli strumieñ jest pusty. /// </returns> public static TeachingSet FromStream(Stream stream) { using (StreamReader sr = new StreamReader(stream)) { return(TeachingSet.FromText(sr)); } }
/// <summary> /// Wczytuje zbiór ucz¹cy z pliku. /// </summary> /// <param name="fileName">Nazwa pliku.</param> /// <exception cref="ApplicationException">Plik ma nieprawid³owy format. /// </exception> /// <returns>Wczytany zbiór ucz¹cy lub <c>null</c>, jeœli plik jest pusty. /// </returns> public static TeachingSet FromFile(string fileName) { using (StreamReader sr = new StreamReader(fileName)) { return(TeachingSet.FromText(sr)); } }
public TeachingSet(TeachingSet set) : base(set.Count) { _inputCount = set._inputCount; _outputCount = set._outputCount; foreach (Element elem in set) { Add(elem.Clone()); } }
/// <summary> /// Interpretuje podany tekst jako opis zbioru ucz¹cego. /// </summary> /// <param name="reader">Obiekt odczytuj¹cy tekst.</param> /// <exception cref="ApplicationException">Tekst ma nieprawid³owy format. /// </exception> /// <returns>Wczytany zbiór ucz¹cy lub <c>null</c>, jeœli tekst jest pusty. /// </returns> public static TeachingSet FromText(TextReader reader) { try { // Pierwsza linia - wymiary sieci. string line = reader.ReadLine(); if (line == null) { return(null); } string[] fields = line.Split(','); if (fields.Length != 2) { throw new ApplicationException("First line must contain two numbers."); } int inputCount = int.Parse(fields[0]); int outputCount = int.Parse(fields[1]); TeachingSet ret = new TeachingSet(inputCount, outputCount); // Poszczególne obiekty. while ((line = reader.ReadLine()) != null) { Element elem; elem.Comment = line; elem.Inputs = ParseLine(reader, inputCount, "Invalid number of inputs."); if (elem.Inputs == null) { break; } elem.ExpectedOutputs = ParseLine(reader, outputCount, "Invalid number of outputs."); if (elem.ExpectedOutputs == null) { break; } ret.Add(elem); } return(ret); } catch (ApplicationException) { throw; } catch (Exception ex) { throw new ApplicationException("The file is corrupted.", ex); } }