![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
вопрос по типу "file of byte"
antonn © (2006-05-10 16:47:00)ну вот, пришлось столкнуться с file of, и вопрос такой появился.
в одном классе для работы описана такая вещь:
File1: file of byte;
работают с ней там соответвенно:
AssignFile(File1, FFilename);
Reset(File1);
while not eof(File1) do ReadBlock;
CloseFile(File1);
при этом File1 заполняется файлом, путь на который хранится в FFilename.
Мне же теперь нужно заполнить File1 из TMemoryStream, и я вообще в непонятках, как это сделать?..
и при этом, очистить от предыдущих данных перед заполнением.
есть ли что то типа AssignMemory? :)
antonn (2006-05-10 19:01:00) [1]Desdechado © (10.05.06 18:39) [3]
поэтому твое чтение в цикле дает последние считанные из файла байты
кстати, они там не последние... я потому и запнулся, что логики нет.
antonn (2006-05-10 19:00:00) [2]ладно, ну его нафиг, этот указатель, "пляшет" по всему юниту, ессно пишется всякая хрень..
спасибо, вопрос закрыт:(
Desdechado (2006-05-10 18:39:00) [3]каждое чтение блока приводит (если нет ошибки) к заполнению переменной считанными байтами и перемещению указателя в файле на следующий за считанными байт
поэтому твое чтение в цикле дает последние считанные из файла байты
antonn (2006-05-10 18:33:00) [4]хи-хи-хи, как, иногда, неприятно чувствовать себя идиотом... :)
тогда такой вопрос:
к предыдущему коду локально описывается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 17:00:00) [5]> File1 заполняется файлом, путь на который хранится в FFilename
нет, file1 - это всего лишь переменная управления файлом, в ней нет содержимого файла
содержимое находится в переменной, которую подпихнешь в функцию Read