Замена фразы по маске на другую фразу по маске в файле - C#

  1. Добрый день! Имеется задача, которую, к сожалению, пока не могу реализовать: Есть текстовый файл состоящий из множества строк. В нем нужно заменить первое вхождение фразы, удовлетворяющей маске "; день недели(3 символа) число (2 символа) месяц (3 символа) год (4 символа) время (hh:mm:ss) часовой пояс (всегда +0300)" (например,"; Fri, 30 Jun 2017 09:06:53 +0300"), на второе вхождение фразы, удовлетворяющей маске. Остальные фразы не трогать. Фраза всегда начинается с символа ";" и заканчивается на "+0300". Если бы вся фраза всегда располагалась на одной строке, проблем у меня это бы не вызвало. Но фраза может начаться на одной строке, а закончиться на другой. Пример прилагаю.


textual

Код к задаче: «Замена фразы по маске на другую фразу по маске в файле - C#»

        static void Main(string[] args)
        {
 
            string[] dirs = Directory.GetFiles(@"D:\mail\", "*.eml");
            try
            {
                foreach (string dir in dirs)
                {
                    Console.WriteLine(dir);
                    string file = String.Empty;
                    using (StreamReader read = new StreamReader(dir, Encoding.Default))
                    {
                        file = read.ReadToEnd();
                    }
                    Regex regex = new Regex(@";\s*[a-z]{3},\s*\d\d\s*[a-z]{3}\s*\d{4}\s*\d\d:\d\d:\d\d\s*\+0300", RegexOptions.IgnoreCase);
                    Match m = regex.Match(file);
                    string dateOld = String.Empty;
                    string dateNew = String.Empty;
                    if (m.Success)
                    {
                        dateOld = m.ToString();
                        dateNew = m.NextMatch().ToString();
                    }
                    using(StreamWriter writer =new StreamWriter(dir.Insert(dir.LastIndexOf('\\') + 1, "end\\"),false,Encoding.Default))
                    {
                        writer.WriteLine(file.Replace(dateOld, dateNew));
                    }
 
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Произошла ошибка: {0}", e.ToString());
                Console.ReadLine();
            }
        }

СДЕЛАЙТЕ РЕПОСТ

6   голосов, оценка 3.667 из 5



Похожие ответы
  1. Я считал в массив char с текстового файла текст. Там есть переходы на новые абзацы. Мне их нужно заменить на пробелы. Работает не правильно, так как не заменяется. Сидел в отладчике, у меня просто не воспринимается как переход на новую строку, т.к. условие

  1. Не могу понять как реализовать Replace не подойдет Допустим, у меня есть строка "This was realistic filling" Как заменить рядок на другой текст или добавить к каждому третьему слову "Un" This was UNrealistic filling

  1. Хочу заменить в документе символ другой строкой. В результате получается так, что первый Execute() срабатывает, а второй нет. Никто не знает, в чём может быть проблема?

  1. всем доброго времени суток! тема курсовой работы разработать программу оценки знаний студента. т.е сделать обычный тест, в котором указывается Ф.И. и группа и начинают идти вопросы и к ним 3 варианта ответа, по завершению выводится табличка с результатами и результаты записываются в файл. есть у кого-то исходники? или что-то на подобии этого?) очень срочно надо, сроки поджимают)))

  1. Приветик ребят!!!! Помогите мне пожалуйста, тут что-то не вразумительное... Как девушка может такое решить!? Посмотрите пожалуйста, может кто-то с таким сталкивался и поможет. Очень на вас надеюсь!!! Распечатать строку, которая получается из введенной строки следующим образом: каждая цифра заменяется на заключенную в круглые скобки последовательность литер '+' (если цифра четная) или '-' (если цифра нечетная), длина которой равна числу, изображаемому цифрой. Спасибо!!!

  1. Помогите написать код: Есть два textbox и одна кнопка. При нажатии кнопки берутся адреса файлов(.txt) из первого и второго textbox-ов. Если содержимое файлов разное, то заменить содержимое первого файла на содержимое второго. (Оба файла остаются, но становятся одинаковыми)

  1. Помогите плис заменить условие с лямбдой выражением. Программа упорядочивает элементы матрицы по возрастанию

  1. Требование к программе: 1.Текст программы представлен в электронном виде и должен включать постановку задачи. 2.Название переменных и констант должны быть логически обоснованы и давать понятие о том какая информация в них представлена. 3.Программа должна запрашивать входные данные и выводить итоговый результат с пояснениямиРабота с текстовыми файлами: Нужно разработать программу,обеспечивающую замену в текстовом файле строчных букв прописными, а прописных строчными.Имя файла должно вводиться с клавиатуры.

  1. Доброго времени суток! Подскажите, кто знает, вопрос очень нужный... имеется матрица 3 столбца и неограниченное количество строк, матрицу вводит пользователь в текстбоксы (они динамические) необходимо заменить элементы строк матрицы так, чтобы сумма столбцов была максимально одинаковой. Реализовал такой алгоритм в wolfram а в c# никак не получается. Заранее огромное спасибо!