Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
regga5
0 / 0 / 0
Регистрация: 11.05.2013
Сообщений: 15
#1

Удалить строки, в которых больше 7ми слов - C++

30.01.2014, 16:08. Просмотров 421. Ответов 4
Метки нет (Все метки)

Друзья.
Вторую неделю ломаю голову чем и как можно решить эту задачу.

Есть текстовый документ на 5 миллионов строк (cp1251), есть как кириллица так и латиница + цифры. Нужно удалить из него все строки в которых больше семи слов (тоесть больше 7 пробелов).

Подскажите пожалуйста чем и как

Добавлено через 6 минут
Могу разделить на куски, потом сложить обратно - если объемы большие.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2014, 16:08     Удалить строки, в которых больше 7ми слов
Посмотрите здесь:

C++ найти количество слов в которых две или больше буквы "с"
Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке C++
В двумерном массиве удалить все столбцы в которых первый элемент больше последнего C++
C++ Удалить все столбцы матрицы, в которых первый элемент больше последнего
C++ Вывод слов из файла длина которых больше N
C++ Массив: Удалить в матрице столбцы количество нулей в которых больше половины.
C++ Удаление из строки слов, длина которых меньше заданной
Найти в предложении количество слов, после которых стоит несколько пробелов и удалить их C++
C++ Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину.
C++ Удалить все столбцы, в которых первый элемент больше последнего
Строки. Найти слова, в которых гласных букв больше, чем согласных C++
C++ Найти строки, у которых диагональный элемент больше суммы всех остальных

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vovan-VE
 Аватар для Vovan-VE
13103 / 6484 / 184
Регистрация: 10.01.2008
Сообщений: 15,061
31.01.2014, 16:15     Удалить строки, в которых больше 7ми слов #2
А в линуксах есть grep
regga5
0 / 0 / 0
Регистрация: 11.05.2013
Сообщений: 15
31.01.2014, 16:45  [ТС]     Удалить строки, в которых больше 7ми слов #3
А я знаю )
Но увы не знаком с Линуксом вообще никак
SoftIce
 Аватар для SoftIce
9724 / 3256 / 819
Регистрация: 27.07.2011
Сообщений: 7,706
Завершенные тесты: 1
31.01.2014, 18:14     Удалить строки, в которых больше 7ми слов #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от regga5 Посмотреть сообщение
(тоесть больше 7 пробелов
7 пробелов - 8 слов

Вот набросал программку. Файл из 7 тыс строк обрабатывает моментально.Насчет 5 млн. - не знаю, попробуй. В крайнем случае разобьёшь на куски.

Исходный текстовый файл не меняется, создаётся новый файл 2.txt с кодировкой по умолчанию.
Вложения
Тип файла: rar WordKiller.rar (15.6 Кб, 6 просмотров)
SoftIce
 Аватар для SoftIce
9724 / 3256 / 819
Регистрация: 27.07.2011
Сообщений: 7,706
Завершенные тесты: 1
31.01.2014, 20:54     Удалить строки, в которых больше 7ми слов #5

Не по теме:

А как это мы в С++ переехали?



Немного оптимизировал код.

Файл 2 млн. строк 124 Мб обработался на моей слабенькой домашней машине за 4 минуты, получилось 370000 строк
Миниатюры
Удалить строки, в которых больше 7ми слов  
Вложения
Тип файла: rar WordKiller.rar (15.6 Кб, 11 просмотров)
Yandex
Объявления
31.01.2014, 20:54     Удалить строки, в которых больше 7ми слов
Ответ Создать тему
Опции темы

Текущее время: 01:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru