Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Данные в файл записать

Автор: 777 17.08.2007 22:06

Стоит такая задача: надо записать данные разных типов в файл. Можно, конечно, создать запись типа
R = record a:string; b:integer end; но как записать данные из архива RAR? То есть, один из полей олжны быть данные по архиву RAR, а каким образом это реализовать? И возможно ли вообще?

Автор: мисс_граффити 18.08.2007 1:52

не поняла, что нужно...
какие именно данные из архива? что в нем? или данные по архиву - его имя, размер и т.п.?

Автор: Гость 18.08.2007 17:07

Ну, хотел бы создать собственный тип файла: создать, например, запись, в поля которой записывать информацию (например, Stream), потом сохранять запись в файле, а после загрузки из такого файла чтоб можно было обращаться к полям этой записи , получая записанную информацию. То есть, в одно поле, например, запишу данные (от первого до последнего байта) архива RAR, в другую - все байты из файла, например, doc, а после загрузки такого файла извлекать из полей информацию и записывать её в новые файлы того формата, из которых она и была извлечена.
Что-то похожее на архивы, но только без сжатия.

Автор: мисс_граффити 18.08.2007 21:03

ужас какой-то.
про нетипизированные файлы читал? не пойдет?

Автор: Гость 19.08.2007 15:59

Пробовал, не подходит: неизвестно ведь, какого размера тот же RAR. То есть, при записи-то известно, а вот при чтении...
Нельзя ли как-нибудь создать масиив типа Stream? Чтоб в каждый элемент записывались именно такие данные (от первого до последнего байта)? Или, при неизвестном размере одного элемента, это невозможно? Просто я ещё не очень хорошо рублю в программировании и могу что-то напутать...

Автор: volvo 19.08.2007 16:04

Цитата
То есть, при записи-то известно, а вот при чтении...
А перед данными добавить LongInt, хранящий их размер, чтобы потом прочесть ровно столько, сколько раньше записал - никак?

Автор: Гость 19.08.2007 16:37

А можно пример, как закидывать все байты файла в элемент массива (или записи), а также их размер (видимо, в другое поле записи), а потом читать оттуда?

Автор: volvo 19.08.2007 16:44

Да что ты заладил "записи, записи". Тебе же сказали, пользуйся НЕтипизированными файлами, там нет такого понятия как "запись" - есть только минимальный размер блока. Смотри Help по словам Reset и BlockRead/BlockWrite...