Форум: "Основная";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];
ВнизОшибка при чтении содержимого файла в буффер Найти похожие ветки
← →
kanych (2003-10-01 03:23) [0]Здравствуйте.
Помогите. Второй день мучаюсь, может у меня мозги набекрень ушли, может не у меня.
Посмотрите два варианта одной процедуры. В обоих случаях переменная ABuffer на выходе содержит адрес на непонятную область. При инициализации этой переменной, присваивается одно значение, при чтении файла значение меняется.
Вариант 1.
procedure TSBSign.ReadFile(AFileName: string; var ABuffer: pointer; var ABufferLength: longint);
var
F: file;
begin
if (not FileExists(AFileName)) then
begin
raise Exception.Create("
← →
pasha (2003-10-01 03:42) [1]ф-ция BlockRead требует для себя буффер а не УКАЗАТЕЛЬ на этот буффер. Попробуй вот так
BlockRead(F, ABuffer^, ABufferLength);
Аналогично и для TFileStream
FileStream.Read(ABuffer^, ABufferLength);
Должно заработать. Удачи
← →
Германн (2003-10-01 04:12) [2]Именно так. BlockRead требует во втором параметре адрес первого байта данных ABuffer, а получает адрес первого байта самой переменной ABuffer. И пишет туда что-то. После чего "значение ABuffer меняется".
← →
kanych (2003-10-01 04:28) [3]Всем спасибо огромное. В самом деле требуется не указатель на буффер, а сам буффер.
← →
Anatoly Podgoretsky (2003-10-01 07:26) [4]kanych © (01.10.03 04:28) [3]
Как раз наоборот, требуется именно указатель на буфер, а у тебя указатель на ABuffer
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c