Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 06.06.2016
Сообщений: 19
1

Удаление повторяющихся слов из файла

18.03.2017, 00:31. Показов 1358. Ответов 3
Метки нет (Все метки)

Здравствуйте. Задача состоит в том, чтобы в полученном текстовом файле выполнить поиск повторяющихся слов. Вот оригинальная формулировка задания: "Дан текстовый файл. Преобразовать его, удалив из каждой строки слова, встречающиеся более двух раз.". Я начал с функции fgetcsv(), которая считывает каждую строку из файла, разделитель - "\n". После этого в переменной создается массив массивов, в каждом из которых по одному элементу - каждая из строк файла. И дальше меня стопорит вопрос о том, как правильно было бы обработать полученные данные. В теории, я бы делал разбиение строки на слова по символу пробела, а затем сравнивание элементов (слов) друг с другом. Но это надо делать отдельно для каждой строки..Что можете посоветовать?
PHP
1
2
3
4
5
6
7
8
9
10
11
$fed = fopen('lorem.txt', 'r');
    while(!feof($fed)) 
    {
        $fst = fgetcsv($fed, 1000,"\n");
        $num = count($fst);
        for ($i=0; $i < $num; $i++) 
        {
            echo $fst[$i] . "<br />\n";;
        }
    }
fclose($fed);
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2017, 00:31
Ответы с готовыми решениями:

Удаление повторяющихся слов
На вход - предложение. Необходимо удалить повторяющиеся слова. В программе нельзя использовать...

Удаление повторяющихся слов
Задание: из текста, который вводит пользователь, нужно удалить повторяющиеся слова. Пример: просто...

Удаление повторяющихся слов
Ребята, пишу первое регулярное выражение. Нужно удалить повторяющиеся слова в строке без учета...

Удаление повторяющихся слов - deque
Привет всем!У меня программа,которая удаляет повторяющиеся слова. Например входные данные: 4...

3
3268 / 2804 / 1406
Регистрация: 15.01.2014
Сообщений: 6,122
18.03.2017, 03:58 2
Цитата Сообщение от Jables_D Посмотреть сообщение
Я начал с функции fgetcsv()
Это как бы лишнее, т.к. у вас обычный текстовый файл, а не CSV. Для вашей задачи достаточно функции file().
Цитата Сообщение от Jables_D Посмотреть сообщение
я бы делал разбиение строки на слова по символу пробела
Направление правильное, но тут может быть загвоздка, связанная со знаками препинания. То есть, если исходная строка "раз два раз, два.", то массив, полученный при разделении строки по пробелу, будет следующим:
PHP
1
2
3
4
5
6
[
  'раз',
  'два',
  'раз,',
  'два.',
];
Я далеко не большой любитель регулярок, но в данном случае, скорее всего, что использовал бы их.
PHP
1
2
3
4
5
6
7
<?php
// Читаем данные файла и сохраняем в массив 
$source = file('my_file.txt');
// Удаляем дубликаты слов
$output = preg_replace('/(\b[\pL]+\b)(?=.*?\1)/iu', '', $source);
// Записываем обработанные данные обратно в файл
file_put_contents('my_file.txt', implode(PHP_EOL, $output));
Само регулярное выражение, возможно, что не самое лучшее, поэтому пусть меня поправят те, кто в них разбирается лучше.
0
0 / 0 / 0
Регистрация: 06.06.2016
Сообщений: 19
18.03.2017, 07:08  [ТС] 3
Да, я видел вариант решения через регулярки. Но их нельзя использовать.
0
74 / 29 / 4
Регистрация: 16.10.2017
Сообщений: 95
25.06.2019, 20:18 4
Цитата Сообщение от Lazy_Den Посмотреть сообщение
Само регулярное выражение, возможно, что не самое лучшее,
Ваша регулярка удаляет дубли, а в условии:
"удалив из каждой строки слова, встречающиеся более двух раз."
те удалить все слова встречающиеся три и более раз.
Можно с preg_replace_callback() проверять $count.
И еще file() по умолчанию читает строки с переводом строки, так что можно соединять пустой строкой.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2019, 20:18

Удаление повторяющихся слов из строки
Имею строку String^ str = &quot;аааи фффс фффс&quot;;, которую читаю из файла... StreamReader ^ sr =...

Строки. Удаление повторяющихся слов
Добрый вечер, всё никак не получается удалить одинаковые слова, помогите пожалуйста. uses crt;...

Удаление повторяющихся слов из стоки на C
Здравствуйте. Помогите пожалуйста реализовать задачу: Дана строка. Группа символов разделленая...

Удаление повторяющихся слов в строке
Помогите с написанием программы на ассемблере, которая в строке удаляет повторяющиеся слова и...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.