Использование Маппинга (Mapping) для больших файлов
От: AlexMarlo  
Дата: 31.01.10 13:07
Оценка:
Вобщем нужно написать программу сравенния очень больших файлов на чистом WinApi на C
файлы могут быть и больше 4 гигов
Вроде всё понятно НО немогу совершенно понять как использовать Mapping и View файла
точнее как организовать чтения определённой части файла
мне ведь надо сранить файлы и даже 10 Мб текста загружать уже много
речь идёт именно о больших файлах
буду рад принять маленький рабочий пример отрытия большго файла
Re: Использование Маппинга (Mapping) для больших файлов
От: x64 Россия  
Дата: 31.01.10 13:15
Оценка:
AM>нужно написать программу сравенния очень больших файлов

Не вижу проблем:

1. CreateFile().
2. CreateFileMapping().
3. В цикле поблочно:
3.1. MapViewOfFile().
3.2. Cравниваем блоки.
3.3. UnmapViewOfFile().
4. CloseHandle().
5. CloseHandle().
Re[2]: Использование Маппинга (Mapping) для больших файлов
От: AlexMarlo  
Дата: 31.01.10 13:26
Оценка: :)
x64>Не вижу проблем:
ну проблем нет в тории пока не начнёш писать

1 CreateFileMapping тоько весь файл замеппировать может или можно укзать только чать
если часть то как?

2 MapViewOfFile немогу понять как в таком поблочном чтении задать 3 последних параметра

3 параметры последнии эитх 2х фунций как я понял связаны только непоуму как
Re[3]: Использование Маппинга (Mapping) для больших файлов
От: x64 Россия  
Дата: 31.01.10 14:00
Оценка:
AM>1 CreateFileMapping тоько весь файл замеппировать может или можно укзать только чать
AM>если часть то как?

Функция CreateFileMapping() ничего не мапит, она лишь создаёт объект-секцию, которую затем можно мапить как захочется с помощью MapViewOfFile().

AM>2 MapViewOfFile немогу понять как в таком поблочном чтении задать 3 последних параметра


А это уже, знаешь ли, математика на уровне начальной школы, ни чем помочь не могу.

AM>3 параметры последнии эитх 2х фунций как я понял связаны только непоуму как


Н-да...
Re[3]: Использование Маппинга (Mapping) для больших файлов
От: -prus-  
Дата: 01.02.10 12:27
Оценка:
Здравствуйте, AlexMarlo, Вы писали:

x64>>Не вижу проблем:

AM>ну проблем нет в тории пока не начнёш писать

AM>1 CreateFileMapping тоько весь файл замеппировать может или можно укзать только чать

AM>если часть то как?

AM>2 MapViewOfFile немогу понять как в таком поблочном чтении задать 3 последних параметра


AM>3 параметры последнии эитх 2х фунций как я понял связаны только непоуму как


Видимо, вам нужно посмотреть пример, который приводит Рихтер в своем труде, раздел "Обработка больших файлов". Основная идея — проецирование блоками в соответствии с гранулярностью выделения памяти. Там найдете ответы на ваши вопросы.
С уважением,
Евгений
Re: Использование Маппинга (Mapping) для больших файлов
От: Leonid Troyanovsky  
Дата: 02.02.10 06:56
Оценка: +2
Здравствуйте, AlexMarlo, Вы писали:

AM>мне ведь надо сранить файлы и даже 10 Мб текста загружать уже много

AM>речь идёт именно о больших файлах
AM>буду рад принять маленький рабочий пример отрытия большго файла

Для сравнения файлов маппинг не нужен.
Читаем в буферы подходящего размера, сравниваем и т.д.
--
С уважением, LVT
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.