Exemple #1
0
 private void MemorizerForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (excelApp != null)
     {
         excelApp.Quit();
     }
     Application.Exit();
 }
Exemple #2
0
        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();
        }
Exemple #3
0
        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();
        }