private void MemorizerForm_FormClosing(object sender, FormClosingEventArgs e) { if (excelApp != null) { excelApp.Quit(); } Application.Exit(); }
private void countWordsButton_Click(object sender, EventArgs e) { StringBuilder st = new StringBuilder(); var dir = new DirectoryInfo(@"C:\3\many\").GetFiles(); foreach (var file in dir) { st.AppendLine(File.ReadAllText(file.FullName, Encoding.UTF8)); } string pathToExcel = FileSaver.OpenExcelFile(); if (DM.PathToExcel == "") { MessageBox.Show("Файл " + DM.PathToExcel + " не найден"); return; } int news = 0; int olds = 0; int oldUnder = 0; int oldUnderFreqSum = 0; WordsFormer.Counting = true; WordsFormer allWords = new WordsFormer(); allWords.analyzeAll(st.ToString()); WordsFormer.Counting = false; excelApp = new ExcelManager(); excelApp.Open(DM.PathToExcel); List <string> existedWords = excelApp.GetColumn(DM.Columns.word); List <string> lfreq = excelApp.GetColumn(DM.Columns.freq); List <string> lLvl = excelApp.GetColumn(DM.Columns.level); List <string> oldUnderList = new List <string>(); List <int> oldUnderCntList = new List <int>(); List <int> newsCnt = new List <int>(); for (int i = 0; i < existedWords.Count; i++) { var f = Convert.ToInt32(lfreq[i]); if (lLvl[i] == "0" && Convert.ToInt32(lfreq[i]) <= DictionaryManager.NumberOfRare) { oldUnderList.Add(existedWords[i]); } } for (int j = 0; j < allWords.dict.Count; j++) { string word = allWords.dict[j].word; int indexOfWordInDictionary = existedWords.IndexOf(word); Text = j.ToString() + "/" + allWords.dict.Count.ToString(); if (indexOfWordInDictionary < 0)//add new { news++; newsCnt.Add(allWords.dict[j].freq); } else { olds++; if (oldUnderList.IndexOf(word) > -1) { oldUnder++; oldUnderFreqSum += allWords.dict[j].freq; oldUnderCntList.Add(allWords.dict[j].freq); } } } Text = $"Новые {news}, среднее кол-во {newsCnt.FindAll(x => x < 15).Average()}, знаю {olds}, всего {allWords.dict.Count}. Сложность {(news * 100 / allWords.dict.Count)}%"; Text += $". Редкие старые {oldUnder}, в среднем {oldUnderCntList.Average()}"; excelApp.makeVisible(); excelApp.Quit(); }
private void beautifyButton_Click(object sender, EventArgs e) { InitDictionaryManagerPaths(); if (excelApp == null) { string pathToExcel = FileSaver.OpenExcelFile(); if (pathToExcel == "") { MessageBox.Show("Файл " + DM.PathToExcel + " не найден"); return; } excelApp = new ExcelManager(); excelApp.Open(DM.PathToExcel); } string textToAnalyze = FileSaver.ReadTextToAnalize(); if (textToAnalyze == "") { MessageBox.Show("Файл " + DM.fileToAnalizePath + " не найден"); return; } WordsFormer allWords = new WordsFormer(); allWords.analyzeAll(textToAnalyze); List <string> lWords = excelApp.GetColumn(DM.Columns.word); List <string> lfreq = excelApp.GetColumn(DM.Columns.freq); List <string> lLvl = excelApp.GetColumn(DM.Columns.level); List <string> lSrs = excelApp.GetColumn(DM.Columns.src); List <string> ltrans1 = excelApp.GetColumn(DM.Columns.trans1); List <string> ltrans2 = excelApp.GetColumn(DM.Columns.trans2); List <string> ltrans3 = excelApp.GetColumn(DM.Columns.trans3); List <string> ldefinition = excelApp.GetColumn(DM.Columns.definition); string addFreq; string miniDict = ""; for (int i = 0; i < allWords.dict.Count; i++) { string word = allWords.dict[i].word; this.Text = i.ToString(); int ind = lWords.IndexOf(word); if (ind < 0) { continue; } addFreq = lfreq[ind]; Stylizer styleze = new Stylizer(); //string translation = ltrans1[ind] + ',' + ltrans2[ind] + ',' + ltrans3[ind]; string translation = ltrans1[ind] + ',' + ltrans2[ind] + ',' + ltrans3[ind] + "\n------\n"; translation += ldefinition[ind].Replace("\"", "").Replace("'", ""); if (lSrs[ind] == sourceTextBox.Text) //that source { if (lLvl[ind] == "0") //dont know, new { styleze.StylizeWord(word, ref textToAnalyze, addFreq, DM.Styles.bold, translation); } if (lLvl[ind] == "1")//maybe know, new { styleze.StylizeWord(word, ref textToAnalyze, addFreq, DM.Styles.brown, translation); } bool writeFullMiniDIct = true; if (writeFullMiniDIct && (lLvl[ind] == "0" || lLvl[ind] == "1")) { miniDict = miniDict + word + '\t' + ltrans1[ind] + '\t' + ltrans2[ind] + '\t' + ltrans3[ind] + '\r'; } } else { if (lLvl[ind] == "0" || lLvl[ind] == "1")//maybe know and don't know, another source { styleze.StylizeWord(word, ref textToAnalyze, addFreq, DM.Styles.italic, translation); miniDict = miniDict + word + '\t' + ltrans1[ind] + '\t' + ltrans2[ind] + '\t' + ltrans3[ind] + '\r'; } if (lLvl[ind] == "2")//maybe know and don't know, another source { styleze.StylizeWord(word, ref textToAnalyze, addFreq, DM.Styles.blue, translation); miniDict = miniDict + word + '\t' + ltrans1[ind] + '\t' + ltrans2[ind] + '\t' + ltrans3[ind] + '\r'; } } } textToAnalyze = textToAnalyze.Replace("\r", "<br>"); string name = commonSourceTextBox.Text + " " + sourceTextBox.Text; FileSaver.WriteFiles(name, miniDict, textToAnalyze); excelApp.Quit(); Application.Exit(); }