void ReadMultiLineContent(MultiLineContentType contentType) { string dirName = ""; bool hasSpliter = false; string fileName = "*.txt"; switch (contentType) { case MultiLineContentType.Stishki: dirName = "Стишки"; break; case MultiLineContentType.Songs: dirName = "Песенки"; break; case MultiLineContentType.Rasskazy: dirName = "Рассказы"; break; case MultiLineContentType.Skorogovorki: hasSpliter = true; fileName = "Скороговорки.txt"; break; case MultiLineContentType.Schitalki: hasSpliter = true; fileName = "Считалки.txt"; break; } ReadMultiLineTypedContent(fileName, dirName, hasSpliter, contentType); }
void ReadMultiLineTypedContent(string fileName, string dirName, bool isHasSplitter, MultiLineContentType contentType) { List <MultiLineObject> mobList = new List <MultiLineObject>(); string catFolder = Lib.LibFolderName + "\\" + name + "\\" + dirName; if (!isHasSplitter) { if (Directory.Exists(catFolder)) { string[] fl = Directory.GetFiles(catFolder, fileName); if (fl != null && fl.Length > 0) { Hashtable ht = new Hashtable(); for (int i = 0; i < fl.Length; i++) { List <string> contentList = new List <string>(); string flName = fl[i]; if (File.Exists(flName)) { ht.Add(flName, null); FileStream fs = File.Open(flName, FileMode.Open); StreamReader sr = new StreamReader(fs, Encoding.GetEncoding(1251)); while (!sr.EndOfStream) { string ln = sr.ReadLine(); contentList.Add(ln); } ht[flName] = contentList; sr.Close(); fs.Close(); } } foreach (string key in ht.Keys) { List <string> contentList = (List <string>)ht[key]; MultiLineObject mob = new MultiLineObject(key, contentList, this); mobList.Add(mob); } } } } else { if (Directory.Exists(catFolder)) { string[] fl = Directory.GetFiles(catFolder, fileName); if (fl != null && fl.Length > 0) { Hashtable ht = new Hashtable(); for (int i = 0; i < fl.Length; i++) { List <string> contentList = new List <string>(); string flName = fl[i]; if (File.Exists(flName)) { ht.Add(flName, null); FileStream fs = File.Open(flName, FileMode.Open); StreamReader sr = new StreamReader(fs, Encoding.GetEncoding(1251)); while (!sr.EndOfStream) { string ln = sr.ReadLine(); if (!String.IsNullOrEmpty(ln) && ln == "@") { MultiLineObject mob = new MultiLineObject(flName, contentList, this); mobList.Add(mob); contentList = new List <string>(); } else { contentList.Add(ln); } } ht[flName] = contentList; sr.Close(); fs.Close(); } } foreach (string key in ht.Keys) { List <string> contentList = (List <string>)ht[key]; MultiLineObject mob = new MultiLineObject(key, contentList, this); mobList.Add(mob); } } } } switch (contentType) { case MultiLineContentType.Schitalki: if (!Settings.MixElementsEnabled) { schitalki = mobList; } else { //надо перемешать считалки schitalki = Category.FillRandomMobList(mobList); } break; case MultiLineContentType.Skorogovorki: if (!Settings.MixElementsEnabled) { skorogovorki = mobList; } else { //надо перемешать скороговорки skorogovorki = Category.FillRandomMobList(mobList); } break; case MultiLineContentType.Stishki: stishki = mobList; break; case MultiLineContentType.Songs: songs = mobList; break; case MultiLineContentType.Rasskazy: rasskazy = mobList; break; } }