Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 20.09.2018
Сообщений: 35

Замена текста в файле

30.10.2018, 22:10. Показов 1796. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! На этот раз вопрос касающейся Работы с Файлами!
Вот задание!
2. Создать программу для поиска указанного текста в файлах, удовлетворяющих заданной маске, и замене этого текста на другой указанный текст. Поиск производится как в указанном каталоге, так и в его подкаталогах.

Благо нашёл поиск !!! но теперь мне нужно заменить искомый текст на другой. скажите Это возможно сделать способом который на картинке написал?

И в правильном ли направлении я иду ? А то это так раздражает когда много много много Много времени потратил на написание кода а это оказался путь ТУПИКОВЫЙ. И надо все переделать ФФФФФФФФФ
Миниатюры
Замена текста в файле  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.10.2018, 22:10
Ответы с готовыми решениями:

Замена текста в файле
Помогите пожалуйста. Есть файл "mytext.txt" с таким содержанием: <div class="one">текст</div> <div...

Замена текста в текстовом файле
всем привет! помогите с такой задачей: при нажатии на кнопку на форме открыть заданный текстовый файл, найти в нем строчку (например...

Замена текста в docx файле на изображение
Добрый день всем, может у кого нибудь остался код. Нужно что бы в документе типа .docx производилась замена определенного текста на...

1
0 / 0 / 0
Регистрация: 20.09.2018
Сообщений: 35
31.10.2018, 09:38  [ТС]
Добавлено через 16 минут
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
using System;
using System.Text;
using System.IO;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Linq;
using System.Text.RegularExpressions;
 
//производится поиск указанного текста в файлах, соответствующих введенной маске
//Маска задается в формате MSDOS: * - любой символ в любом количестве, ? - один любой символ
//Для поиска файлов и текста в них используются регулярные выражения 
// Класс для поиска текста в файлах, заданных DOS'вской маской
class Search
{
    static void Main()
    {
        Console.Write("Введите путь к каталогу: ");
        string Path = @"E:\\Lab4";// Console.ReadLine();
        Console.Write("Введите маску для файлов: ");
        string Mask = "док*.*";// Console.ReadLine();
        Console.Write("Введите текст для поиска в файлах: ");
        string Text = Console.ReadLine();
        // Дописываем слэш (в случае его отсутствия)
        if (Path[Path.Length - 1] != '\\')
            Path += "\\";
            // Создание объекта на основе введенного пути
            DirectoryInfo di = new DirectoryInfo(Path);
        // Если путь не существует
        if (!di.Exists)
        {
            Console.WriteLine("Некорректный путь!!!");
            return;
        }
        // Преобразуем введенную маску для файлов  в регулярное выражение
        // Заменяем . на \.
        Mask = Mask.Replace(".", @"\." /* (".", "\\.") */);
        // Заменяем ? на .
        Mask = Mask.Replace("?", ".");
        // Заменяем * на .*
        Mask = Mask.Replace("*", ".*");
        // Указываем, что требуется найти точное соответствие маске
        Mask = "^" + Mask + "$";
        // Создание объекта регулярного выражения     на основе маски
        Regex regMask = new Regex(Mask, RegexOptions.IgnoreCase);
        // Экранируем спецсимволы во введенном тексте
        Text = Regex.Escape(Text);
        // Создание объекта регулярного выражения     на основе текста
        Regex regText = new Regex(Text, RegexOptions.IgnoreCase);
        // Вызываем функцию поиска
        ulong Count = FindTextInFiles(di, regText, regMask);
        Console.WriteLine("Всего обработано файлов: {0}.", Count);
    }
    // Функция поиска
    static ulong FindTextInFiles(DirectoryInfo di, Regex regText, Regex regMask)
    {
        // Поток для чтения из файла
        StreamReader sr = null;
        // Список найденных совпадений
        MatchCollection mc = null;
        // Количество обработанных файлов
        ulong CountOfMatchFiles = 0;
        FileInfo[] fi = null;
        try
        {
            // Получаем список файлов
            fi = di.GetFiles();
        }
        catch { return CountOfMatchFiles; }
        // Перебираем список файлов
        foreach (FileInfo f in fi)
        {
            // Если файл соответствует маске
            if (regMask.IsMatch(f.Name))
            {
                ++CountOfMatchFiles;    // Увеличиваем счетчик
                Console.WriteLine("File " + f.Name + ":");
                sr = new StreamReader(di.FullName + @"\" + f.Name, Encoding.Default); // Открываем файл
                string Content = sr.ReadToEnd();    // Считываем целиком
                sr.Close(); // Закрываем файл
                mc = regText.Matches(Content);  // Ищем заданный текст
                                                // Перебираем список вхождений
               
                foreach (Match m in mc)
                {
                    Console.WriteLine("Текст найден в позиции {0}.",m );
                    Console.WriteLine("Текст найден в позиции {0}.", m.Index);
                }
                Content = Content.Replace(regText, "ba");
                /* Отладочная информация*/
                if (mc.Count == 0)
                {
                    Console.WriteLine("В данном файле запрошенный текст не найден.");
                }
            }
        }
        /* Отладочная информация*/
        Console.WriteLine("Количество обработанных файлов в каталоге {0} {1}",
                        di.FullName, CountOfMatchFiles);
        // Получаем список подкаталогов
        DirectoryInfo[] diSub = di.GetDirectories();
        // Для каждого из них вызываем (рекурсивно)     эту же функцию поиска
        foreach (DirectoryInfo diSubDir in diSub)
            CountOfMatchFiles += FindTextInFiles(diSubDir, regText, regMask);
        return CountOfMatchFiles;
    }
} // Возврат количества обработанных файлов
Добавлено через 11 часов 4 минуты
Все уже сделал! Спасибо за внимание))) А как удалять темы?

Добавлено через 24 секунды
Все уже сделал! Спасибо за внимание))) А как удалять темы?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.10.2018, 09:38
Помогаю со студенческими работами здесь

Поиск текста в файле и замена его на новый
1. Есть файл, в нем описаны замены аа -> bb ссс -> jjj мама -> дядя 2. Есть исходный файл, в котором нужно осуществить замену 3....

Замена текста в PDF-файле
Как заменить текст в PDF файле? например в pdf есть слово "пес" хочу заменить его на "кот". Только пожалуйста не отправляйте...

Замена текста в файле
Есть файл с кодом, нужно после определенных строчек удалить\добавить другие строчки Пример: .line 677 .local v10,...

Замена текста в файле
Дан файл: нужно вытащить значения lat, lon, time, ele и записать в другой файл, либо как-то убрать лишнее в исходном файле, оставив...

Замена текста в файле
Народ, помогите с батником. Начал учиться писать .bat для себя. В итоге столкнулся с необходимостью bat на работе... Ну вот как написать...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru