Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Внизfile mapping Найти похожие ветки
← →
race1 (2004-08-03 06:41) [0]после замапивания файла в процесс у нас появился указатель где лежат данные файла. как можно пройтись по этим данным по-байтно, т.е. узнать 1-ый быйт, 2-ой байт и т.д.?
← →
race1 (2004-08-03 09:03) [1]а?
← →
oleg_SYS © (2004-08-03 09:05) [2]Юзай TFileStream:
...
var
fs : TFileStream;
b : Byte;
begin
fs := TFileStream.Create("путь к файлу", fmOpenRead);
fs.Position := 5; // указываешь какой байт те нужен
fs.Read(b,1); // загружаешь этот байт
fs.Free;
Можно в цикле. Тогда каждый раз Position не нада менять.
← →
MegaVolt (2004-08-03 09:15) [3]Только читать по байту будет медленно читай по 32К а уж потом лазь по буферу.
← →
race1 (2004-08-03 09:20) [4]в целях удобства я и решил использовать отображённые в память файлы. думал так удобнее с ними работать и быстрее. нифига, блин, только время потратил :(
← →
Игорь Шевченко © (2004-08-03 09:55) [5]
> после замапивания файла в процесс у нас появился указатель
> где лежат данные файла. как можно пройтись по этим данным
> по-байтно, т.е. узнать 1-ый быйт, 2-ой байт и т.д.?
PChar(Указатель)^ - первый байт
Точно так же, как обычная работа с памятью.
> думал так удобнее с ними работать и быстрее.
Правильно думал
← →
race1 (2004-08-03 10:29) [6]PChar(Указатель)^ - первый байт
pchar(cardinal(указатель) + n)^; // n-ый байт
так?
← →
Игорь Шевченко © (2004-08-03 10:37) [7]
> так?
В принципе, можно и так.
FileMapping дает возможность работать с данными файла, как если бы файл целиком был загружен в память.
← →
Игорь Шевченко © (2004-08-03 10:38) [8]Можно и PByteArray(Указатель)^[номер_байта]
← →
ЮрийК © (2004-08-03 10:40) [9]Примерно так:
TByteArray = array [0..MaxInt div SizeOf(Byte) - 1] of Byte;
PByteArray = ^TByteArray;
PMapedFile : PByteArray;
PMapedFile := MapFile(...);//обёртка функций, которые маппируют файл
PMapedFile[n-1] - n-ный байт в файле
Вместо байта может быть и Word и Integer и т.д.
← →
race1 (2004-08-03 10:44) [10]прикручу у себя работу с замапленными файлами как с массивами. это моя мечта была когда я делал как в [6] :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c