Пример #1
0
        //Выбор папки с исследуемыми текстами
        private void button3_Click(object sender, EventArgs e)
        {
            var folderBrowserDialog1 = new FolderBrowserDialog();

            folderBrowserDialog1.Description = "Выбор папки с текстовыми файлами";
            DialogResult result = folderBrowserDialog1.ShowDialog();
            var          dir    = folderBrowserDialog1.SelectedPath;

            if (result == DialogResult.OK)
            {
                var           number_of_loaded_files = Int32.Parse(label7.Text);
                List <String> ListOfFiles            = new List <string>();
                number_of_loaded_files += FileWorking.GetListOfFiles(ListOfFiles, dir);
                foreach (var i in ListOfFiles)
                {
                    var temp = i.Split('\\');
                    FileWorking.ListOfFilesTexts.Add(temp[temp.Length - 1]);
                }
                label7.Text = number_of_loaded_files.ToString();
                label8.Text = declension_file(number_of_loaded_files);

                foreach (var file in ListOfFiles)
                {
                    FileWorking.AddFile(file, false);
                }
            }
        }
Пример #2
0
        //Выбор файла с исследуемыми текстами

        //Выбор файла с текстами-образцами
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            openFileDialog1.Title            = "Выбор текстового файла";
            openFileDialog1.Multiselect      = false; //Запрет множественного выбора
            openFileDialog1.InitialDirectory = "c:\\";
            openFileDialog1.Filter           = "Текстовые файлы |*.TXT";
            openFileDialog1.RestoreDirectory = true;
            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                var number_of_loaded_files = Int32.Parse(label3.Text) + 1;
                label3.Text = number_of_loaded_files.ToString();
                label4.Text = declension_file(number_of_loaded_files);

                FileWorking.AddFile(openFileDialog1.FileName, true);
                var temp = openFileDialog1.FileName.Split('\\');
                FileWorking.ListOfFilesSamples.Add(temp[temp.Length - 1]);
            }
        }
Пример #3
0
        /// <summary>
        /// Добавляет хеш-файл в анализируемый список
        /// </summary>
        /// <param name="filename">Путь до анализируемого файла</param>
        /// <param name="f">true - добавление в образцы, false - добавление в исследуемые тексты</param>
        public static void AddFile(string filename, bool f)
        {
            //Если выбран служебный файл с хешами
            if (FileWorking.IsProcessedFile(filename))
            {
                MessageBox.Show("Выбран служебный файл!");
                return;
            }
            //Если выбран служебный файл с хешами

            //Проверка, не устарел ли файл с хешами
            if (FileWorking.IsProcessed(filename))
            {
                if (File.GetLastWriteTime(filename) > File.GetLastWriteTime(filename + ".processed"))
                {
                    File.Delete(filename + ".processed");
                }
            }
            //Проверка, не устарел ли файл с хешами

            //Если требуется хеширование
            if (!FileWorking.IsProcessed(filename))
            {
                //Хеширование по словам
                var           text     = FileWorking.ReadFile(filename).ToString().Replace(".", ""); //Удаление точек
                List <String> HashList = new List <String>();
                var           words    = text.Split(new char[] { ' ', '\n', '\t' });
                foreach (var word in words)
                {
                    //if (word!="") HashList.Add(WordHash(word).ToString());
                    if (word != "")
                    {
                        HashList.Add(GetCrypt(word));
                    }
                }
                //Хеширование по словам

                StringBuilder hash_line = new StringBuilder();
                var           i         = 0;
                foreach (var hash in HashList)
                {
                    if (i != HashList.Count - 1)
                    {
                        hash_line.Append(hash.ToString() + ",");
                    }
                    else
                    {
                        hash_line.Append(hash.ToString());
                    }
                    i++;
                }
                File.WriteAllText(filename + ".processed", hash_line.ToString());


                if (f == true)
                {
                    Samples.Add(hash_line.ToString());
                }
                else
                {
                    Texts.Add(hash_line.ToString());
                }
            }
            //Если требуется хеширование

            //Если хеширование не требуется
            else
            {
                if (f == true)
                {
                    Samples.Add(File.ReadAllText(filename + ".processed"));
                }
                else
                {
                    Texts.Add(File.ReadAllText(filename + ".processed"));
                }
            }
            //Если хеширование не требуется
        }