Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
2 / 2 / 0
Регистрация: 22.12.2017
Сообщений: 115

Программа для поиска файлов по заданным критериям

12.09.2019, 19:00. Показов 4121. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые форумчане. У меня не получается сделать эту программу. Пожалуйста, выручите!
Критерии:
1.Стартовая директория (с которой начинается поиск)
2.Шаблон имени файла
3.Текст, содержащийся в файле

Введенные критерии не должны потеряться при перезапуске программы

Во время поиска нужно отображать какой файл обрабатывается в данный момент, количество обработанных файлов и прошедшее время.

Все найденные файлы отображать в виде дерева (как в левой части проводника)

Найденные файлы должны обновляться в реальном времени

Поиск нужно уметь остановить в любой момент и затем либо продолжить, либо начать новый
Вложения
Тип файла: zip Search.zip (203.2 Кб, 26 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.09.2019, 19:00
Ответы с готовыми решениями:

Программа для поиска повторяющихся текстовых файлов
Всем привет!У меня возникла такая проблема. Мне нужно написать программу в Visual studio 2008, которая выполняет поиск дублирующихся файлов...

Программа для поиска файлов по определенным критериям
Доброго времени суток. Возникла необходимость написать программу для повседневного использования. На рабочем столе имеется 20...

Реализация функции поиска нужной услуги по заданным критериям поиска.
Получил задание на тему ArrayList, не получается сделать целиком...Вот задание помогите кто чем сможет.Спасибо. Необходимо разработать...

5
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16125 / 11249 / 2888
Регистрация: 21.04.2018
Сообщений: 33,082
Записей в блоге: 2
13.09.2019, 15:34
Julia099, попробуйте что-то сделать на основе этого кода
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
using System;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
 
namespace Search
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            LoadValues();
            ResultText = "";
        }
 
        public string StartingDirectory { get => textBox1.Text; set => textBox1.Text = value; }
        public string PatternNameFiles { get => textBox2.Text; set => textBox2.Text = value; }
        public string SearchText { get => textBox3.Text; set => textBox3.Text = value; }
        public string ResultText { get => labelResult.Text; set => labelResult.Text = value; }
        private bool isStopSearch = false;
 
        private void SaveValue()
        {
            using (BinaryWriter file = new BinaryWriter(File.Create("values.bin")))
            {
                file.Write(StartingDirectory);
                file.Write(PatternNameFiles);
                file.Write(SearchText);
            }
        }
 
        private void LoadValues()
        {
            try
            {
                using (BinaryReader file = new BinaryReader(File.OpenRead("values.bin")))
                {
                    string _startingDirectory = file.ReadString();
                    string _patternNameFiles = file.ReadString();
                    string _searchText = file.ReadString();
                    StartingDirectory = _startingDirectory;
                    PatternNameFiles = _patternNameFiles;
                    SearchText = _searchText;
                }
            }
            catch (Exception)
            {
 
            }
 
        }
 
 
        public IEnumerable<string> SearchTextInDirectory(string directory, string patternNameFiles, string searchText)
        {
            string[] namesFiles = Directory.GetFiles(directory, patternNameFiles);
            foreach (string name in namesFiles)
            {
                if (isStopSearch)
                    break;
                if (File.ReadAllText(name).Contains(searchText))
                    yield return name;
            }
        }
 
 
        private void Button1_Click(object sender, EventArgs e)
        {
            isStopSearch = false;
            ResultText = "";
            foreach (string name in SearchTextInDirectory(StartingDirectory, PatternNameFiles, SearchText))
            {
                ResultText += name + Environment.NewLine;
            }
        }
 
        private void TextBox_Leave(object sender, EventArgs e)
            => SaveValue();
 
        private void Button2_Click(object sender, EventArgs e)
        {
            isStopSearch = true;
        }
    }
}
Запускать проверять было некогда.

Архив с изменениями приложен
Вложения
Тип файла: 7z Search(Julia099).7z (132.6 Кб, 74 просмотров)
0
2 / 2 / 0
Регистрация: 22.12.2017
Сообщений: 115
13.09.2019, 20:47  [ТС]
Элд Хасп,
values.bin это файл, который находится в стартовой директории?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16125 / 11249 / 2888
Регистрация: 21.04.2018
Сообщений: 33,082
Записей в блоге: 2
13.09.2019, 21:31
Цитата Сообщение от Julia099 Посмотреть сообщение
values.bin это файл, который находится в стартовой директории?
Да.
Файл для сохранения значений состояния элементов.
Имя можете дать любое.
Главное условие - чтение типов должно быть в таком же порядке как они и записывались.
0
2 / 2 / 0
Регистрация: 22.12.2017
Сообщений: 115
14.09.2019, 12:18  [ТС]
Элд Хасп,
Цитата Сообщение от Julia099 Посмотреть сообщение
Во время поиска нужно отображать какой файл обрабатывается в данный момент, количество обработанных файлов и прошедшее время.
Все найденные файлы отображать в виде дерева (как в левой части проводника)
Найденные файлы должны обновляться в реальном времени
А это вообще можно как-то реализовать? Я просто первый раз с этим сталкиваюсь.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16125 / 11249 / 2888
Регистрация: 21.04.2018
Сообщений: 33,082
Записей в блоге: 2
14.09.2019, 12:34
Цитата Сообщение от Julia099 Посмотреть сообщение
А это вообще можно как-то реализовать? Я просто первый раз с этим сталкиваюсь.
Это слишком много для одной темы.
Здесь несколько задач.

Ещё проблема в однозадачности приложения.
Чтобы изменения на форме отображались в процессе работы метода, этот метод должен быть асинхронным.
А изменения значений из него должно происходить в основном потоке.

Прочитайте " Как получить доступ к контролу из другого потока" в теме Ответы на 7 самых частых вопросов по WinForms

Попробуйте освоить многопоточность.

Так же освойте использование TreeView
https://docs.microsoft.com/ru-... mework-4.8
https://metanit.com/sharp/windowsforms/4.13.php


Когда всё это освоите - будет иметь смысл приступать к дальнейшей реализации вашего задания.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.09.2019, 12:34
Помогаю со студенческими работами здесь

Создание поиска по всей книге, по заданным критериям
Нужно сделать поиск по всей Книге. Чтобы при вводе значений для поиска, на эту же страничку, дублировались все строки из соседних...

Метод поиска всех элементов по заданным критериям
Привет. Я думаю ни для кого не секрет, что есть короткие ссылки гугла вида https://*******/OvjAfs Так вот, меня интересует последняя часть...

Программа для поиска файлов
Ребят хочу вылезти из типичных примеров в книгах и написать прогу для поиска файлов хоть бы самую приметивную. Ища в нэте ничего...

Программа для поиска файлов
Помогите доработать или переписать часть кода. При щелчке первой кнопки пользователь выбирает директорию поиска. При щелчке второй...

Программа для поиска файлов
нужна программа на c++ or php которая будет искать файл и загружать его на фтп, программа должна работать скрытно.и добавляла время и дату...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru