|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.04.2012, 23:31 | #1 |
Пользователь
Регистрация: 18.04.2012
Сообщений: 12
|
Самое быстрое сравнение текстовых файлов
Товарищи, есть вопрос:
есть 2 текстовых файла, по 10 мегабайт как максимально быстро сравнить строки этих файлов с выводом результата в третий файл? т.е. "файл 1": а1 б1 в1 "файл 2": а1 б2 в1 в "файл 3" тогда будет записано б2 на данный момент делаю так: Код:
если "файл 1" = 8мб, а "файл 2" = 1мб, то обработка занимает больше часа... На intel core i3 с 4гб Последний раз редактировалось artemavd; 24.04.2012 в 07:14. |
23.04.2012, 23:37 | #2 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Загрузить оба файла как бинарные, сравнить в памяти, сформировать образ выходного файла в памяти, вывести файл на диск как бинарный.
Это все займет менее секунды. |
23.04.2012, 23:54 | #3 |
Пользователь
Регистрация: 18.04.2012
Сообщений: 12
|
а поподробнее ??
|
24.04.2012, 00:55 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
раз уже есть привязка к тому что он текстовый(строки), то кроме как построчно не получится никак.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
24.04.2012, 04:19 | #5 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Почему? Любые данные можно рассмотреть как набор байт.
Главное привести TXT к одной кодировке, иначе побайтное стравнение будет бессмысленно и беспощадно. Если не хотите хардкора, то TFileStream,TMemoryStream вам в помощь. Если же хотите дейтвительно разобраться, и даже сделать быстрее, то начинка выше упомянутых классов вам в помощь. |
24.04.2012, 10:19 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Человек_Борща, придется искать границы строк, из низ образуя блоки для сравнения.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
24.04.2012, 11:21 | #7 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
зачем? Это же байты!
|
24.04.2012, 11:30 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
вот именно, что БАЙТЫ. А в исходной задачи нужно сравнивать СТРОКИ!
Вы исходное условие внимательно читали? например, первый файл: sss dd bb второй файл sss ggggggggggggg bb программа сравнения должна (по мнению TC) выдать в третий файл ggggggggggggg А что выдаст ваше побайтовое сравнение?! p.s. я бы взял обычные TStringList, загрузил туда исходные файлы и банально в цикле сравнивал! 10Мб - это детский сад! Правда, в задачах нахождения отличия между текстовыми файлами есть ряд нюансов, учитывать их или нет зависит от TC (точнее от задачи, которую он решает). |
24.04.2012, 11:34 | #9 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
не всяк байт символом является.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
24.04.2012, 11:40 | #10 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Если задачка "для себя", то можно попробовать воспользоваться программой comp (win+r -> cmd -> comp /? для просмотра синтаксиса).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сравнение данных в текстовых файлах | zhukovms | Помощь студентам | 34 | 05.09.2011 11:58 |
ОБРАБОТКА текстовых файлов | Kirillnd | C++ Builder | 2 | 31.07.2011 16:40 |
Обработка текстовых файлов. | kolobot | Помощь студентам | 2 | 15.12.2010 21:14 |
копирование текстовых файлов | teacher | Общие вопросы Delphi | 4 | 16.02.2008 20:29 |
Сравнение текстовых файлов | BR17UY | Общие вопросы Delphi | 15 | 07.05.2007 20:18 |