Реализовать алгоритм поиска и сравнения. Файлы читать в память как текст и работать как с текстом, либо работать как с потоками с помощью DataToFileEx.
Алгоритм прикинуть на бумаге/в голове, потом подумать как реализовать. Читаешь фрагмент исходного файла определенной длины, затем в цикле читаешь из другого файла фрагмент такой же длины и сравниваешь. На следующей итерации цикла возвращаешь позицию чтения другого файла на следующий байт, с которого читал предыдущий фрагмент и опять сравниваешь.
Типа:
1) Прочитал строку длиной 5 символов из позиции 0 первого файла
2) Прочитал строку длиной 5 символов из позиции 0 второго файла
3) Сравнил
4) Вернул позицию во втором файла в номер 1 (на второй байт, "предыдущая позиция + 1")
Пункты 2-4 выполняются в цикле, пока весь второй файл не будет прочитан
Пункты 1-4 выполняются в цикле, пока весь первый файл не будет прочитан
Можно читать и сравнивать по 1 байту, если размеры файлов одинаковые. Если размеры разные и в файлах были добавления-перемещения фрагментов - надо думать как это должно работать.
Для записи новых данных в файл - с помощью модицированного DataToFile (оригинальный не умеет писать в файл строку без дополнительных окончаний). Также можно использовать для чтения указанного количества байт (стандартный не умеет).
Ответов: 4628
Рейтинг: 749
|
|||
карма: 26 |
|
Редактировалось 2 раз(а), последний 2021-10-13 13:59:34