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 loadButton_Click(object sender, EventArgs e) { if (excelApp == null) { string pathToExcel = FileSaver.OpenExcelFile(); if (DM.PathToExcel == "") { MessageBox.Show("Файл " + DM.PathToExcel + " не найден"); return; } excelApp = new ExcelManager(); excelApp.Open(DM.PathToExcel); } memo = new MemoManager(grid); 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> ltrans1 = excelApp.GetColumn(DM.Columns.trans1); List <string> ltrans2 = excelApp.GetColumn(DM.Columns.trans2); List <string> ltrans3 = excelApp.GetColumn(DM.Columns.trans3); richTextBox1.Text = ""; foreach (var item in countUnknownWords(lfreq, lLvl)) { richTextBox1.Text += item.Key + " " + item.Value + "\r"; } string lvlCondition = "0"; if (unknownRadioButton.Checked) { lvlCondition = unknownRadioButton.Text; } if (fogottenRadioButton.Checked) { lvlCondition = fogottenRadioButton.Text; } if (studiedRadioButton.Checked) { lvlCondition = studiedRadioButton.Text; } int minFreq = Convert.ToInt16(minFreqTextBox.Text); int maxWords = Convert.ToInt16(maxRndTextBox.Text); for (int i = 0; i < lWords.Count && memo.study.Count < maxWords; i++) { if (lLvl[i] == lvlCondition && Convert.ToInt16(lfreq[i]) >= minFreq) { memo.AddStudy(lWords[i], i, ltrans1[i] + "," + ltrans2[i] + "," + ltrans3[i]); for (int j = 0; j < WordsFormer.maxExamples; j++) { if (excelApp.GetValue(j + WordsFormer.whereExamplesStart, i + 2) != "") { memo.study[memo.study.Count - 1].AddEx(excelApp.GetValue(j + WordsFormer.whereExamplesStart, i + 2)); } } Text = i.ToString() + " Слов " + memo.study.Count.ToString(); } } memo.FillGrid(); memo.ApplyParams(Convert.ToInt16(rangeTextBox.Text)); richTextBox1.Focus(); //nextButton_Click(null, null); }
private void addWordsFromTextButton_Click(object sender, EventArgs e) { InitDictionaryManagerPaths(); if (commonSourceTextBox.Text == "" || sourceTextBox.Text == "") { MessageBox.Show("Не заполнены поля источники"); return; } string textToAnalyze = FileSaver.ReadTextToAnalize(); if (textToAnalyze == "") { MessageBox.Show("Файл " + DM.fileToAnalizePath + " не найден"); return; } string pathToExcel = FileSaver.OpenExcelFile(); if (DM.PathToExcel == "") { MessageBox.Show("Файл " + DM.PathToExcel + " не найден"); return; } int news = 0; int olds = 0; string log = ""; WordsFormer allWords = new WordsFormer(); allWords.analyzeAll(textToAnalyze); if (excelApp == null) { 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); int oldUnder = 0; 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 { Translator tranlate = new Translator(); Translator.WordTranslation translatedWord; translatedWord = tranlate.makeTranslations(word); int lastRow = excelApp.lastRow; excelApp.SetValue(DM.Columns.word, lastRow, translatedWord.word); excelApp.SetValue(DM.Columns.freq, lastRow, allWords.dict[j].freq.ToString()); excelApp.SetValue(DM.Columns.level, lastRow, "0"); excelApp.SetValue(DM.Columns.date, lastRow, DateTime.Today.ToShortDateString()); excelApp.SetValue(DM.Columns.definition, lastRow, translatedWord.definition); excelApp.SetValue(DM.Columns.init, lastRow, translatedWord.initial); excelApp.SetValue(DM.Columns.trans1, lastRow, translatedWord.translation.Split('\t')[0]); excelApp.SetValue(DM.Columns.trans2, lastRow, translatedWord.translation.Split('\t')[1]); excelApp.SetValue(DM.Columns.trans3, lastRow, translatedWord.translation.Split('\t')[2]); excelApp.SetValue(DM.Columns.src, lastRow, sourceTextBox.Text); excelApp.SetValue(DM.Columns.comSrc, lastRow, commonSourceTextBox.Text); DM.AddExamples(excelApp, allWords.dict[j].examples, lastRow); news++; } else { indexOfWordInDictionary = indexOfWordInDictionary + 2;//first two rows isnot count. can refacotr DM.IncreaseFrequency(excelApp, indexOfWordInDictionary, allWords.dict[j].freq); DM.AddExamples(excelApp, allWords.dict[j].examples, indexOfWordInDictionary); olds++; if (oldUnderList.IndexOf(word) > -1) { oldUnder++; } log = log + word + "\taddFreq " + allWords.dict[j].freq.ToString() + "\tfrom " + allWords.dict[j].word + "\r"; } } Text = $"Новые {news}, знаю {olds}, всего {allWords.dict.Count}. Сложность {(news * 100 / allWords.dict.Count)}%. Редкие {oldUnder}"; FileSaver.Log(log); FileSaver.Duplicate(sourceTextBox.Text); excelApp.makeVisible(); }