Помощь - Поиск - Пользователи - Календарь
Полная версия: Данные в файл записать
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
777
Стоит такая задача: надо записать данные разных типов в файл. Можно, конечно, создать запись типа
R = record a:string; b:integer end; но как записать данные из архива RAR? То есть, один из полей олжны быть данные по архиву RAR, а каким образом это реализовать? И возможно ли вообще?
мисс_граффити
не поняла, что нужно...
какие именно данные из архива? что в нем? или данные по архиву - его имя, размер и т.п.?
Гость
Ну, хотел бы создать собственный тип файла: создать, например, запись, в поля которой записывать информацию (например, Stream), потом сохранять запись в файле, а после загрузки из такого файла чтоб можно было обращаться к полям этой записи , получая записанную информацию. То есть, в одно поле, например, запишу данные (от первого до последнего байта) архива RAR, в другую - все байты из файла, например, doc, а после загрузки такого файла извлекать из полей информацию и записывать её в новые файлы того формата, из которых она и была извлечена.
Что-то похожее на архивы, но только без сжатия.
мисс_граффити
ужас какой-то.
про нетипизированные файлы читал? не пойдет?
Гость
Пробовал, не подходит: неизвестно ведь, какого размера тот же RAR. То есть, при записи-то известно, а вот при чтении...
Нельзя ли как-нибудь создать масиив типа Stream? Чтоб в каждый элемент записывались именно такие данные (от первого до последнего байта)? Или, при неизвестном размере одного элемента, это невозможно? Просто я ещё не очень хорошо рублю в программировании и могу что-то напутать...
volvo
Цитата
То есть, при записи-то известно, а вот при чтении...
А перед данными добавить LongInt, хранящий их размер, чтобы потом прочесть ровно столько, сколько раньше записал - никак?
Гость
А можно пример, как закидывать все байты файла в элемент массива (или записи), а также их размер (видимо, в другое поле записи), а потом читать оттуда?
volvo
Да что ты заладил "записи, записи". Тебе же сказали, пользуйся НЕтипизированными файлами, там нет такого понятия как "запись" - есть только минимальный размер блока. Смотри Help по словам Reset и BlockRead/BlockWrite...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.