Другие языки программирования и технологии
Как подсчитать дубли строк в текстовом файле?
Может кто нибудь привести код на делфи 7 Или хотябы алгоритм по такой задаче:на входе есть БОЛЬШОЙ текстовый файл (больше ста тысяч строк), нужно подсчитать кол-во дублей строк в этом файле. т.е.:'орпгорор' 10 штук'лоршшг' 3 штуки'лорапе' 1 штука.........
По-моему, для более чем ста тысяч строк и хеш-сортировки нужно много-много (неизвестно сколько, причём) памяти (чтобы избежать коллизий) , так что лучше сделать по-паскалевски - сделать файловую переменную и, считывая построчно, создавать в динамической памяти список из записей типа строка-количество. То есть считали строку, идём по списку, пока не встретим строку >= нашей новой или конец списка, если нашли её же, то увеличиваем счётчик, иначе вставляем в список новый элемент; либо по-дельфийски (в моём представлении) - считать файл в TStringList, сделать List.Sort (не знаю, насколько быстро он отсортирует стотысячестрочный файл... ) и пройти по списку, считая количество стоящих подряд одинаковых строк.
А можно, считывая построчно, создавать не просто список, а TStringList из пар строк -сама строка, а за ней - строка с количеством, тогда можно будет сначала проверять наличие новой строки в списке встроенным в TStringList методом быстрого поиска.
Могу реализовать за интерес, коль попросите, то есть если сам никак)
А можно, считывая построчно, создавать не просто список, а TStringList из пар строк -сама строка, а за ней - строка с количеством, тогда можно будет сначала проверять наличие новой строки в списке встроенным в TStringList методом быстрого поиска.
Могу реализовать за интерес, коль попросите, то есть если сам никак)
можно сделать так
проходимся по строкам - для каждой вычисляем значение какой-нибудь хеш функции
этому значению соотв счётчик в карте (map)
после этого убираем все элементы из карты у которых значения счётчика = 1
число оставшихся элементов и есть ваш ответ
PS: могу реализовать за небольшое вознаграждение
проходимся по строкам - для каждой вычисляем значение какой-нибудь хеш функции
этому значению соотв счётчик в карте (map)
после этого убираем все элементы из карты у которых значения счётчика = 1
число оставшихся элементов и есть ваш ответ
PS: могу реализовать за небольшое вознаграждение
не совсем понял вопрос.. . дубли строк - имеется в виду, что строка повторяется неоднократно в тексте? или буквы дублируются внутри строки?
Похожие вопросы
- Как удалить определённые строки в текстовом файле? С++
- Скопировать из текстового файла .txt часть строк c 1 по 3000, затем с 3000 по 6000 и так до конца файла.
- 4. Даны два текстовых файла. Записать в третий только те строки, которые есть и в первом, и во втором файлах.
- задача TurboPascal с текстовым файлом, помогите....
- Написать программу которая подсчитывает частоту встречаемости символов в заданном текстовом файле С++
- Извлечение ссылки из текстовых файлов
- Нужно получить массив слов из текстового файла
- Имеется 1500 строк с названиями файлов в формате txt, какой программой можно определить строки где символов больше?
- Считывание данных из текстового файла С++
- Скажите пожалуйста как передать данные из текстового файла в массив на php