[Решено] Перетаскивание (файла) НАРУЖУ

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Перетаскивание (файла) НАРУЖУ

Сообщение kotompazb » 17.08.2016 21:45:29

скалогрыз писал(а):А тела файлов будут доступны через IStream. Что в случае HDD должно существенно сэкономить место, т.к. не нужно делать временный файл, а копировать прямо из образа.

Так там же вроде данные файла должны быть непрерывными, не?
Аватара пользователя
kotompazb
постоялец
 
Сообщения: 151
Зарегистрирован: 21.06.2012 13:03:39
Откуда: Novosibirsk, xUSSR

Re: Перетаскивание (файла) НАРУЖУ

Сообщение скалогрыз » 17.08.2016 21:51:15

kotompazb писал(а):Так там же вроде данные файла должны быть непрерывными, не?

данные файла должны быть непрерывными, но это не значит что "файл" должен иметь конкретное место на диске (во временной папке, к которму можно обратится, через winAPI CreateFile() ).
Там будет хранится условное имя файла: например "/etc/fpc.cfg". И уже получатель должен разруливать как он к себе такое имя примет.
А данные он получит, через IStream интерфейс, а не копируя конкретный файл.
Тут может быть вопрос с директориями... но я уверен что и этот вопрос решаем :)
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Перетаскивание (файла) НАРУЖУ

Сообщение kotompazb » 17.08.2016 22:08:28

скалогрыз писал(а):данные файла должны быть непрерывными

Ну вот. В CP/M данные файла далеко не обязательно идут непрерывны. Есть понятие блока - минимальный адресуемый кусок дискового пространства. Размер блоков в разных образах разный (от 1к до 32к вроде, может и больше, не помню точно). В директории после имени файла и прочих данных, хранится 16 байт карты расположения файла, то есть номера блоков, в которых хранятся данные файла. Если размер файла больше 16 (или 8 при 2-байтной карте) блоков, то в директории такому файлу отводится несколько записей. В общем, фрагментация в CP/M имеет место быть:)

Добавлено спустя 2 минуты 46 секунд:
kotompazb писал(а):Тут может быть вопрос с директориями...

Директорий как таковых там нет, она одна. Есть тн области пользователя, этакий зачаток, по факту просто атрибут файла (1 байт - номер области пользователя - обычно от 0 до 15).
Аватара пользователя
kotompazb
постоялец
 
Сообщения: 151
Зарегистрирован: 21.06.2012 13:03:39
Откуда: Novosibirsk, xUSSR

Re: Перетаскивание (файла) НАРУЖУ

Сообщение скалогрыз » 17.08.2016 22:18:41

kotompazb писал(а): Если размер файла больше 16 (или 8 при 2-байтной карте) блоков, то в директории такому файлу отводится несколько записей. В общем, фрагментация в CP/M имеет место быть:)

это вопрос формата хранения данных. Т.е. это существенно для образа CP/M.
Но может быть абсолютно не существенно для той флешки, на которую файл из образа CP/M копируется.
По-этому, тебе, как источнику данных, нужно позаботится о написании такого IStream, который спрячет факт непоследовательности данных и сделает их последовательными.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Перетаскивание (файла) НАРУЖУ

Сообщение kotompazb » 17.08.2016 22:26:37

скалогрыз писал(а):По-этому, тебе, как источнику данных, нужно позаботится о написании такого IStream, который спрячет факт непоследовательности данных и сделает их последовательными.

Во-о-от. Теперь доходит постепенно:)
Да я че-то думаю остановиться пока на этом. Там еще пока много всего, чем можно заняться:)
Аватара пользователя
kotompazb
постоялец
 
Сообщения: 151
Зарегистрирован: 21.06.2012 13:03:39
Откуда: Novosibirsk, xUSSR

Пред.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 244

Рейтинг@Mail.ru