Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.
Grand's - сайт об электронно-вычислительной технике (зеркало)
Поиски редактирования файлов любого размера навели на следующие мысли.
Какой же самый большой недостаток трдос'а? И в общем меня не устраивает только одно - максимальный размер файла.
Эти преславутые 255 секторов. Да, можно конечно и несколько файлов подряд записать, как это делает Zip или ZAsm при сохранении рамдиска, но подряд.
И решение есть, как кажется очень простое.
Э-х, если бы парни всей земли ...
В общем размер файла сделать 3-х байтным, т.е. размер в секторах считать старшим байтом размера файла. А для того что бы пзу трдос ничего не натворила, записать в идентификатор диска другое значение. Да и в пзу подправить не такая уж проблема.
И тогда ... в каждом файле хоть свою дисковую систему, КАЖДЫЙ СВОЮ. Требование одно копирование, уплотнение диска, удаление из расчета 3-х байтовой длинны файла. За внутреннее содержание файла ответственна программа создавшая его. Каждый использует как хочет или может. Я не против ковыряний внутри, просто разговору о формате таких файлов займет очень много ... ЛЕТ.
DirSys, кстати сказать, ни каких боков трдос не исправляет, позволяет организовать показ каталога, а ограничение в 128 файлов так и осталось.
Много лет назад я взял на вооружение другой способ, похожий на то как в TR-DOS записываются файлы прямого/последовательного доступа (напомню: там размер таких файлов по 8Kb, и распологаться они могут в любой последовательности).Сообщение от Rubts0FF
Вроде никто этого и не утверждал. DirSys - это просто надстройка, позволяющая организовывать каталоги..Сообщение от Rubts0FF
Последний раз редактировалось Grand; 11.04.2007 в 03:31.
Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.
Grand's - сайт об электронно-вычислительной технике (зеркало)
Я тут похоже не так тебя понял... Это уже всё есть. Генс у меня записывал файлы поверх, если они одно размера в секторах были (хотя могу и ошибаться). Склеивать пустые места, освобождая файловые индексы в каталоге - это конечно неплохо, но есть такое соображение. Эти места вообще то бронируются для того, чтобы потом эти файлы можно было восстановить. Конечно, я согласен что этим мало кто пользуется (по крайней мере я - ни разу не восстанавливал так файлы, хотя в тырдосе уже лет 10 сижу), но всё же...
И ещё, использование каких-либо реорганизаций уже стёртых файлов не есть хорошо, потому что там может и важная информация хранится (а вот это я использовал - вытаскивал кое что нужно, про что сам давно уже забыд).
Добавлено через 2 минуты
Не получится, потому что DirSys оставлял в принципе систему файлов в порядке, а вот такое изменение коснётся файловой системы капитально, а так как основная масса программеров (и я в том числе) работают с каталогами ТыРДОСа напрямую (читая секторы *16 номер файла и т.д.) то ничего хорошего такое нововведение не даст.
Надо, чтобы в программе была возможность отключения этой функции.Сообщение от GriV
К примеру, в системе RT-11 (и аналогичных ей) на ДВК-совместимых, новые файлы всегда записываются в подходящие пустые области (там это не отключаемо), и одновременно есть возможность восстановить стёртый файл, если на него ещё ничего не записалось.
Art Studio и мой GSV (тот, что не x.xDS) пишут на диск новые картинки поверх старых. Но лично мне хочется, чтобы появились программы, записывающие файл на место удалённого файла, если он больше или равен новому файлу, а остатокСообщение от GriV
оформляли бы как следующий удалённый файл (при условии, конечно, что есть свободное место в каталоге).
Последний раз редактировалось Grand; 11.11.2008 в 03:27. Причина: изменение гиперссылки
Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.
Grand's - сайт об электронно-вычислительной технике (зеркало)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Перезаписывать файлы поверх оригинальных, если они одного размера, могут многие программы (часть моих в том числе, если не путаю). Про запись поверх _уже удаленных_ файлов я не слышал.
Плюс, как точно сказано:
А то, судя твоей логике, надо исключить из функционала команду Move
Как мне кажется, алгортим действий должен быть таким:
1. Смотрим включена ли функция. Если выключена, то действуем как обычно.
2. Смотрим на количество файлов в каталоге. Если их 128, то выходим.
3. Смотрим, есть ли удалённые файлы. Если нет, то действуем как обычно.
4. Ищем удалённые файлы и сравниваем их длину с записываемым файлом. Если есть удалённый файл равной длины, то новый файл пишем на его место, иначе пишем в файл с минимальной подходящей длиной.
5. Из оставшихся от удалённого файла секоторов создаём "новый" удалённый файл и корректируем каталог, записывая в него новый файл и новый удалённый файлы.
С уважением, Станислав.
Учтите что стандартная команда MOVE в TR-DOS корректно работает только в том случае, если файлы на диске расположены в том же порядке, в каком они указаны в каталоге. То бишь нельзя, например, файл дописать в хвост диска, а описатель его указать в начале каталога, на месте стертого файла.
Работает команда следующим образом: находим стертый файл, определяем его начало на диске, находим следующий нестертый файл, определяем его начало, копируем сектора нестертого файла "вверх" по диску (подтаскиваем его к началу), меняем местами описатели стертого и нестертого файла в каталоге, повторяем.
При нарушении условия непрерывности дискового пространства в результате такого MOVE получим кашу. Также можно получить неубирающуюся "дырку" на диске, если делаем следующее:
В каталоге:
Файл1
Файл2
На диске:
Файл1
<Свободное место>
Файл2
Даже если сотрем файл2 и сделаем MOVE, свободное место не уберется.
Другие реализации MOVE работают по-другому. Хотя сама по себе идея использования "дырок" хороша.
Кстати еще я бы убрал файлы произвольного доступа (ими так никто и не воспользовался), а для последовательного доступа сделал бы возможность открывать любой файл (а не только "#"). Потоковый ввод/вывод - вещь полезная. Можно писать/читать файл по частям не заботясь о его длине. Все прочие дисковые ОС на Спеке и даже ОС Микродрайва это умеют.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)