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

Создать новый файл содержащий все знаки препинания из исходного файла

02.01.2017, 17:24. Показов 1682. Ответов 5

Author24 — интернет-сервис помощи студентам
Дан текстовый файл. Создать новый файл, содержащий все знаки препинания, встретившиеся в текстовом файле (в том же порядке).
Проблема в том что оно мне нужно записать весь алфавит в letters и чтобы выводило в созданный файл заменяя не каждый раз символ алфавита по отдельности и записывало много строк а записало 1 строку в файл заменяя все символы алфавита в ней
C#
1
2
3
4
5
6
7
8
9
string[] input = File.ReadAllLines(@"C:/in.txt", Encoding.Default);
            StreamWriter stream_0 = new StreamWriter(@"C:/out_line.txt");
            for (int i = 0; i < input.Length; i++)
            {
                string[] letters = { "a", "b".....};
                for (int j = 0; j < letters.Length; j++)
                stream_0.WriteLine(input[i].Replace(letters[j], ""));
            }
            stream_0.Close();
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.01.2017, 17:24
Ответы с готовыми решениями:

Дано целое число N и текстовый файл. Создать новый файл, содержащий все слова длины N из исходного файла
Помогите, пожалуйста, с задачей :sigh: Дано целое число N и текстовый файл. Создать новый файл,...

Из файла вывести все знаки препинания в новый файл
Дан файл из него нужно вывести все знаки препинания в новый файл.Нужно это сделать с помощью...

Дан строковый файл. Создать новый строковый файл, содержащий все строки исходного файла наибольшей длины
Всем привет! Кто может помочь с двумя небольшими програмками по работе с файлами? Очень буду...

Дан текстовый файл. Создать символьный файл, содержащий знаки препинания исходного
Помогите плс! Дан текстовый файл. Создать символьный файл, содержащий все знаки препинания,...

5
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
02.01.2017, 19:07 2
1. В цикле делать Replace - ужасная идея. Приложение может отожрать несколько гигов оперативной памяти, в зависимости от размера файла. xD
Лучше с файлом работать посимвольно, а не построчно и использовать хотя бы ReadAllText вместо ReadAllLines.
2. Не нужно создавать в цикле каждый раз letters, достаточно вынести создание переменной за цикл for.
3. В файле есть невидимые символы: переход на новую строку \n, перевод каретки \r, табуляции \t и тому подобное. Лучше создавать словарь из возможных знаков препинания.
4. Вместо Close лучше использовать using для StreamWriter, потому что если поток упадет где-то в процессе, то он не закроется и будет утечка памяти.
5. Словарь лучше сделать типа string или char[], а для поиска вхождения использовать метод Contains.
1
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
02.01.2017, 19:26 3
как-то так
C#
1
2
3
4
5
6
7
8
9
            var text = File.ReadAllText(@"c:\1.txt", Encoding.Default);
            var sb = new StringBuilder();
            foreach (var item in text)
            {
                if (char.IsPunctuation(item)) sb.Append(item);
            }
            File.AppendAllText(@"c:\2.txt", sb.ToString());
            Console.WriteLine(sb.ToString());
            Console.ReadKey(true);
1
0 / 0 / 0
Регистрация: 05.10.2016
Сообщений: 19
02.01.2017, 19:37  [ТС] 4
А можно это все таки как-то со stereamwriter сделать????
0
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
02.01.2017, 19:50 5
Заменить 7-ую строку на:
C#
1
2
3
4
using (StreamWriter stream_0 = new StreamWriter(@"C:/out_line.txt"))
{
    stream_0.WriteLine(sb.ToString());
}
1
269 / 253 / 186
Регистрация: 28.10.2015
Сообщений: 723
03.01.2017, 07:53 6
Лучший ответ Сообщение было отмечено MikeSD как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.Linq;
using System.IO;
 
class Program
{
    public static void Main()
    {
        using (StreamWriter stream_0 = new StreamWriter(@"C:/out_line.txt"))
        {
            stream_0.WriteLine(String.Join(String.Empty,
                File.ReadAllText(@"C:/in.txt")
                .Where(ch => Char.IsPunctuation(ch))
            ));
        }
    }
}
1
03.01.2017, 07:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.01.2017, 07:53
Помогаю со студенческими работами здесь

Создать новый файл, содержащий все элементы матрицы (по строкам) из исходного файла
Помогите пожалуйста !!! Дан файл вещественных чисел, содержащий ненулевую часть нижнетреугольной...

Создать новый строковый файл, содержащий все строки исходного файла наибольшей длины
Дан строковый файл. Создать новый строковый файл, содержащий все строки исходного файла...

Создать новый строковый файл, содержащий все строки исходного файла наименьшей длины
Дан строковый файл. Создать новый строковый файл, содержащий все строки исходного файла наименьшей...

Создать новый файл, содержащий все строки исходного файла наибольшей длины в обратном порядке
Дан текстовый файл. Создать новый файл, содержащий все строки исходного файла наибольшей длины в...


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

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