С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 11
1

Заменить в файле текст, находящийся между заданными участками

30.12.2014, 02:48. Показов 668. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В указанный файл вместо строк расположенных между
#FILE имя-файла.txt и #FILE-END подставить содержимое файла имя-файла.txt.

Пробовал сделать, получилось что заменяет только первую часть (#FILE *.txt), не могу понять как сделать чтобы заменялось всё что между началом и концом.

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
 
namespace test
{
    class Program
    {
        static void Main()
        {
            string path = @"...\test.txt";
            string[] mass_text = File.ReadAllLines(path);
            StreamWriter file_end = new StreamWriter(path);
 
            string reference = "#FILE ";
 
            for (int i = 0; i < mass_text.Length; i++)
            {
                if (mass_text[i].IndexOf(reference) != -1)
                {
                    string fileName = mass_text[i].Substring(mass_text[i].IndexOf(reference) + reference.Length);
                    string[] textInFile = File.ReadAllLines(fileName);
                    string res ="";
                    for (int j = 0; j < textInFile.Length; j++)
                    {
                        res += textInFile[j] + "";
                    }
                    mass_text[i] = mass_text[i].Replace(mass_text[i], res);
 
                }
                file_end.WriteLine(mass_text[i]);
            }
            file_end.Close();           
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.12.2014, 02:48
Ответы с готовыми решениями:

Отформатировать текст, находящийся в файле
помогите,решить программу..на языке С... написать на Code:Blockse

Разбить произвольный текст, находящийся в файле, на строки определенной длины
Разбить произвольный текст, находящийся в файле, на строки определенной длины. При переносе слова...

Выделить жирным шрифтом текст в RichTextBox находящийся между тегов <b>
Все наверное знают, что есть такой HTML тег: &lt;b&gt;Текст&lt;/b&gt; Текст находящийся между данным тегом...

Как выделить и вывести в отдельную строку в клетку А2 текст, находящийся между скобками?
Дана строка, в которой где-то находится открывающаяся скобка &quot;&quot;.

3
459 / 403 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
30.12.2014, 03:39 2
C#
1
2
3
4
5
            string text= "fdfdfdfdf #FILEимя-файла.txt#FILE-END папппрпрпарапрапоаораао";
            text = Regex.Replace(text, @"#FILE", "");
            text = Regex.Replace(text, @"-END", "");
            Console.WriteLine(text);
            Console.ReadKey();
0
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 11
30.12.2014, 10:33  [ТС] 3
Prog_maker, это должно работать как активный генератор кода. Есть 2 текстовых файла, в одном #FILE и #FILE-END, а в другом что угодно, и при запуске проги в которой прописан путь к определенному файлу, в нём заменяются все что от #FILE *.txt до #FILE-END на то что во втором файле *.txt.
0
286 / 192 / 56
Регистрация: 25.12.2012
Сообщений: 640
30.12.2014, 17:30 4
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 static void Main(string[] args)
 {
     string text = File.ReadAllText("test.txt");
 
     string pattern = @"((\r?\n)|^)\#FILE\s*
                         (\r?\n (?<file>.*?)  )*
                         \r?\n\#FILE-END";
 
     Regex r = new Regex(pattern, RegexOptions.IgnorePatternWhitespace);  
 
     text = r.Replace(text, m =>
         {
             string s = "";
             foreach (Capture g in m.Groups["file"].Captures)
                 if (File.Exists(g.Value))
                     s += File.ReadAllText(g.Value);
             return s;
         });
 
     Console.WriteLine(text);
 }
Тестил на этом
Bash
1
2
3
4
5
6
7
8
int x = 0;
 
#FILE
 
A.txt
#FILE-END
 
int y = 0;
0
30.12.2014, 17:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.12.2014, 17:30
Помогаю со студенческими работами здесь

Нужно отформатировать текст находящийся в файле: каждое предложение должно иметь порядковый номер и начинаться с красной строки
Нужно отформатировать текст находящийся в файле: каждое предложение должно иметь порядковый номер и...

Реализовать функцию, перемещающую текст находящийся между первыми двумя запятыми в строке, в начало текста
Реализовать функцию перемещающую текст находящийся между первыми двумя запятыми в строке в начало...

Как в XML-файле изменить значения, находящиеся между заданными тегами?
Здравствуйте, подскажите, как изменить в файле *.xml значения в тэгах &lt;DocNumber&gt;...&lt;/DocNumber&gt; на...

Нужно из определенного текста вырезать текст идущий между двумя заданными символами
Надеюсь поймете)):(


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru