private void róbPoziomPlikuWyjaśnień(int tenPoziom, StreamReader streamReader, Wyjaśnienie wyjaśnienie) { string wiersz; while ((wiersz = streamReader.ReadLine()) != null) { int poziom = pobierzPoziom(wiersz); if (tenPoziom != poziom) { break; } else if (tenPoziom == poziom && wiersz[poziom] == '<') { Wyjaśnienie podWyjaśnienie = new Wyjaśnienie(); podWyjaśnienie.nazwa = wiersz.Trim(new char[] { '<', '>', ' ' }); róbPoziomPlikuWyjaśnień(tenPoziom + 1, streamReader, podWyjaśnienie); if (podWyjaśnienie.wejścia.Count != 0 || podWyjaśnienie.podWejścia.Count != 0) { wyjaśnienie.podWejścia.Add(podWyjaśnienie); } } else if (tenPoziom == poziom && wiersz[poziom] != '<') { wyjaśnienie.wejścia.Add(wiersz.Trim()); } } }
private void naprawPlikWyjaśnień(string ścieżkaPlikuWyjaśnień) { StreamReader streamReader = File.OpenText(ścieżkaPlikuWyjaśnień); Wyjaśnienie wyjaśnienie = new Wyjaśnienie(); róbPoziomPlikuWyjaśnień(0, streamReader, wyjaśnienie); streamReader.Close(); StreamWriter streamWriter = File.CreateText(ścieżkaPlikuWyjaśnień); zapiszPoziomyPlikuWyjaśnień(0, streamWriter, wyjaśnienie); streamWriter.Close(); }
private void zapiszPoziomyPlikuWyjaśnień(int tenPoziom, StreamWriter streamWriter, Wyjaśnienie wyjaśnienie) { foreach (string wyjaśnienie1 in wyjaśnienie.wejścia) { streamWriter.WriteLine(napisWypoziomowany((uint)tenPoziom, wyjaśnienie1)); } foreach (Wyjaśnienie wyjaśnienie1 in wyjaśnienie.podWejścia) { streamWriter.WriteLine(napisWypoziomowany((uint)tenPoziom, "<" + wyjaśnienie1.nazwa + ">")); zapiszPoziomyPlikuWyjaśnień(tenPoziom + 1, streamWriter, wyjaśnienie1); streamWriter.WriteLine(napisWypoziomowany((uint)tenPoziom, "</>")); } }