Вопрос № 21672: Привет всем!
Возникла следующая задача. Существует файл, в котором записано большое количество строк. При этом известно, что многие строки могут повторятся, причём большое количество раз (10 и более). Требуется определить все РАЗНЫЕ строки и коли...
Вопрос № 21.672
Привет всем!
Возникла следующая задача. Существует файл, в котором записано большое количество строк. При этом известно, что многие строки могут повторятся, причём большое количество раз (10 и более). Требуется определить все РАЗНЫЕ строки и количество нахождений каждой из них в файле. Заранее благодарен.
Приложение:
Отправлен: 02.06.2005, 16:38
Вопрос задала: Ерёмин Андрей (статус: 5-ый класс)
Всего ответов отправлено: 3
Отвечает: Сажин Владимир Сергеевич
Здравствуйте, Master89!
Мой скрипт анализирует файл strings.txt, ищет повторяющиеся строки.
Если строка повторяется 2 или более раз, строка и количество повторений заносится в массив $rep_strings.
Если строка не повторяется, она заносится в массив $non_rep_strings.
Данные выводятся в виде таблицы.
Приложение:
Ответ отправил: Сажин Владимир Сергеевич (статус: 2-ой класс)
Отправлен: 02.06.2005, 19:26 Оценка за ответ: 5 Комментарий оценки: Отлично! То, что нужно! Большое спасибо! Хммм... Только что столкнулся с функцией array_unique() - не это ли мне нужно было? ;)
Отвечает: gp
Здравствуйте, Master89!
Можно использовать такой алгоритм:
Функция(1) получает содержимое файла, читает первую строку и ищет по файлу идентичную. Не найдя, пишет в конец файл вывода эту строку, удаляет ее из исходного файла и этот "уменьшенный" файл передает самой себе(рекурсия). Найдя, вызывает функцию(2), которая получает эту НЕУникальную строку и содержимое файла, и удаляет все вхождения строки в файл. И "вычещенный" файл возвращает функции (1).
.....................................
Функция (1) заканчивает работу, когда в получаемом файле остается 0 или 1 строк, т.е. это условие должно постоянно проверяться.
А в файле вывода остается то, что вы хотели.
Приложение:
Ответ отправил: gp (статус: Профессионал)
Отправлен: 02.06.2005, 20:02 Оценка за ответ: 4 Комментарий оценки: За алгоритм спасибо, но хотелось бы реальный код.
Отвечает: Andrewkz
Здравствуйте, Master89!
Могу помочь в логике... код писать некогда..
открываешь файл, читаешь его в переменную,
потом переменную парсишь в массив напр.
$arr = explode("
", $var);
Затем в массиве ищешь все элементы и смотришь сколько их там...
Ответ отправил: Andrewkz (статус: 2-ой класс)
Отправлен: 03.06.2005, 13:08 Оценка за ответ: 3