Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 115
от 15.04.2003, 17:40

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 194
Отправлено ответов: 572
Активность: 294.8 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Ayl
Статус: Профессиональный
Общий рейтинг: 118.92
[Подробней >>]
Sensey
Статус: Профессиональный
Общий рейтинг: 121.34
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 д.
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 190. Уважаемые эксперты!! Я понимаю,что уже надоел своими дурацкими вопросами.Но надежда только на ВАС !!... (ответов: 1)
Вопрос № 191. Привет всем Экспертам! Назрел такой вопрос (под Dos): как лучше устроить функцию выбора файла? Имеет... (ответов: 2)

Вопросов: 2, ответов: 3


 Вопрос № 190

Уважаемые эксперты!!
Я понимаю,что уже надоел своими дурацкими вопросами.Но надежда только на ВАС !!
Как мне объяснили данная прога не будет работать на компе если его адаптер LPT не держит двунаправленный режим ввода-вывода.Скажите ЧАЙНИКУ как изменить данный кусок проги чтоб работало.А если это невозможно то нельзя ли сделать аналог на другом порте например GAME.
прога в приложении


Приложение:


Вопрос отправлен: 10.04.2003, 17:03
Отправитель: anton (oven_mars@rambler.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Доброе время суток, anton!
Если адаптер не держит двунаправленный режим, то никаким образом ты не сможешь получить состояние внешнего устройства. Так что опаньки. А чего именно ты пытаешься добиться? Может, через COM попробуешь?

Ответ отправлен: 10.04.2003, 17:30
Отправитель: Ayl


 Вопрос № 191

Привет всем Экспертам!
Назрел такой вопрос (под Dos): как лучше устроить функцию выбора файла? Имеется в виду вывод на экран названий (отсортированных) ~20 файлов с возможностью просмотра вперед и назад. (Простите, если не очень понятно! :) )
Держать все имена в памяти? А если в каталоге оооочень много файлов... Записывать имена в файл? Может кто ни будь знает более эффективный способ?
Буду очень признателен за информацию!
С уважением
Vitally.



Вопрос отправлен: 12.04.2003, 17:30
Отправитель: Vitally

[Следующий вопрос >>] [Список вопросов]

Отвечает Sensey

Приветствую Вас, Vitally!
Проще всего - сделать массив из записей, каждая запись описывает файл.
Получится 12+3+4+3+2+1=25 байт. Итого сразу ты сможешь хранить инфу о 65535:25=2620 файлах. Если этого мало сделай массив ссылок на данную структуру, тогда макс число файлов ок. 16000. По моему достаточно...


Ответ отправлен: 13.04.2003, 12:07
Отправитель: Sensey


Отвечает Ayl

Здравствуйте, Vitally!
Естественно, держать все в памяти. Слишком много файлов в каталоге не будет. По крайней мере рассчитывай именно на это.
Лучше всего использовать динамические структуры, в твоем случае скорее всего отсортированный двунаправленный список. Тогда у тебя не будет проблем с выводом имен файлов и движением по списку.
Сколько это "съест" памяти? Ну, давай посчитаем. Допустим, один элемент каталога ты опишешь так:
PDirectoryEntry = ^TDirectoryEntry;
TDirectoryEntry = Record
prev : PDirectoryEntry;
next : PDirectoryEntry;
fname : string[8];
fext : string[3];
end;
Тогда структура займет: имя файла + расширение = 11 байт, 2 указателя - 8 байт. Итого - 19 байт. Память выделяется кусками по 8 байт, то есть структура с выравниванием займет 24 байта.
Тогда в 1 сегмент (64К) влезет около 2730 элементов. Если считать по максимуму, то во всю память влезет около 27000 элементов. Я не думаю, что в твоем каталоге будет столько файлов. К тому же, ИМХО, и у DOS'а есть ограничение на общее число файлов в каталоге.
Даже если ты захочешь хранить в своей структуре всю информацию о записи в каталоге (32 байта), то вместе с указателями это даст тебе только 40 байт на структуру, т.е. более 16000 файлов в каталоге.

Ответ отправлен: 14.04.2003, 14:12
Отправитель: Ayl



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (38)
C / C++ (29)
Perl (6)
Delphi (16)
Pascal (23)
Basic / VBA (9)
Java / JavaScript (10)
PHP (5)
MySQL / MSSQL (6)
Пользователю
Windows 95/98/Me (29)
Windows NT/2000/XP (21)
"Железо" (24)
Поиск информации (12)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (13)
Юристу
Гражданское право (8)
Семейное право (5)
Трудовое право (5)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное