Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.28;
Скачать: CL | DM;

Вниз

вопрос по типу "file of byte"   Найти похожие ветки 

 
antonn ©   (2006-05-10 16:47) [0]

ну вот, пришлось столкнуться с file of, и вопрос такой появился.
в одном классе для работы описана такая вещь:
File1: file of byte;

работают с ней там соответвенно:
AssignFile(File1, FFilename);
Reset(File1);
while not eof(File1) do ReadBlock;
CloseFile(File1);


при этом File1 заполняется файлом, путь на который хранится в FFilename.
Мне же теперь нужно заполнить File1 из TMemoryStream, и я вообще в непонятках, как это сделать?..
и при этом, очистить от предыдущих данных перед заполнением.
есть ли что то типа AssignMemory? :)


 
Desdechado ©   (2006-05-10 17:00) [1]

> File1 заполняется файлом, путь на который хранится в FFilename
нет, file1 - это всего лишь переменная управления файлом, в ней нет содержимого файла
содержимое находится в переменной, которую подпихнешь в функцию Read


 
antonn ©   (2006-05-10 18:33) [2]

хи-хи-хи, как, иногда, неприятно чувствовать себя идиотом... :)

тогда такой вопрос:
к предыдущему коду локально описывается var theByte: array[0..7] of byte;
в процедуре ReadBlock такой код:
BlockRead(File1, theByte, 8);
методом тыка поянл, что в theByte находятся не первые 8 байт файла, а как то иначе...
если убрать "while not eof(File1) do", т.е. просто оставить ReadBlock; то будут первые 8 байт.
Как понять, каким образом там заполняется-то?

ЗЫ я не совсем идиотские вопросы задаю? :)


 
Desdechado ©   (2006-05-10 18:39) [3]

каждое чтение блока приводит (если нет ошибки) к заполнению переменной считанными байтами и перемещению указателя в файле на следующий за считанными байт
поэтому твое чтение в цикле дает последние считанные из файла байты


 
antonn ©   (2006-05-10 19:00) [4]

ладно, ну его нафиг, этот указатель, "пляшет" по всему юниту, ессно пишется всякая хрень..
спасибо, вопрос закрыт:(


 
antonn ©   (2006-05-10 19:01) [5]

Desdechado ©   (10.05.06 18:39) [3]
поэтому твое чтение в цикле дает последние считанные из файла байты

кстати, они там не последние... я потому и запнулся, что логики нет.



Страницы: 1 вся ветка

Текущий архив: 2006.05.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.035 c
11-1127135844
=mike=
2005-09-19 17:17
2006.05.28
Не получается скомпилировать проект


2-1147245283
Id
2006-05-10 11:14
2006.05.28
Пользователи базы данных


1-1145265006
dracula
2006-04-17 13:10
2006.05.28
Есть две программы, надо из одной в другую передать строку?


4-1141606261
Nostradamus
2006-03-06 03:51
2006.05.28
HKLM под Windows Vista (Build 5308)


15-1146765878
Strate
2006-05-04 22:04
2006.05.28
Ошибка при запуске "Локальная политка безрпасности"