русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Тема 25: Обробка не типізованих файлів

Файли, що не типізуються, оголошуються як файлові змінні типа FILE і відрізняються тим, що для них не вказаний тип компонентів. Відсутність типа робить ці файли, з одного боку, сумісними з будь-якими іншими файлами, а з іншою дозволяє організувати високошвидкісний обмін даними між диском і пам'яттю.

При ініціації файлу, що не типізується, процедурами RESET або REWRITE можна вказати довжину запису файлу, що не типізується, в байтах.

Наприклад, так:

var

f: file;

begin

.......

assign(f, ''myfile.dat'')

reset(f,512);

.......

end.

Довжина запису файлу, що не типізується, вказується другим параметром при зверненні до процедур RESET або REWRITE, як яке може використовуватися вираження типа WORD. Якщо довжина запису не вказана, вона приймається рівною 128 байтам.

Турбо Паскаль не накладає яких-небудь обмежень на довжину запису файлу, що не типізується, за винятком вимоги позитивності і обмеження максимальної довжини 65535 байтами (ємкість цілого типа WORD). Проте для забезпечення максимальної швидкості обміну даними слід задавати довжину, яка була б кратна довжині фізичного сектора дискового носія інформації (512 байт). Більш того, фактично простір на диску виділяється будь-якому файлу порціями - кластерами, які залежно від типа диска можуть займати 2 і більш суміжних секторів. Як правило, кластер може бути прочитаний або записаний за один зворот диска, тому найвищу швидкість обміну даними можна отримати, якщо вказати довжину запису, рівну довжині кластера.

При роботі з файлами, що не типізуються, можуть застосовуватися всі процедури і функції, доступні файлам, що типізуються, за винятком READ і WRITE, які замінюються відповідно високошвидкісними процедурами BLOCKREAD і BLOCKWRITE. Для виклику цих процедур використовуються наступні пропозиції:

BLOCKREAD (<ф .п . >, <буф> < [, <NN>] )

BLOCKWRITE (<ф . п . >, <буф> < [, <NN>] )

Тут <буф> - буфер: ім'я змінної, яка братиме участь в обміні даними з дисками;

<D> - кількість записів, які мають бути прочитані або записані за одне звернення до диска;

<NN> - необов'язковий параметр, що містить при виході з процедури кількість фактично оброблених записів.

За одне звернення до процедур може бути передано до N*recs байт, де RECS - довжина запису файлу, що не типізується. Передача йде, починаючи з першого байта змінної <буф>. Програміст повинен поклопотатися про те, щоб довжина внутрішнього представлення змінної <буф> була достатньою для розміщення всіх N*recs байт при читанні інформації з диска. Якщо при читанні вказана змінна <буф> недостатньої довжини або якщо в процесі запису на диск не виявиться потрібного вільного простору, виникне помилка введення-виводу, яку можна заблокувати, вказавши необов'язковий параметр <NN> (змінна типа WORD).

Після завершення процедури покажчик зміщується на <NN> записів. Процедурами SEEK, FILEPOS і FILESIZE можна забезпечити доступ до будь-якого запису файлу, що не типізується.

Питання для контролю.

1. Які файли називаються не типізованими?

2. В чому переваги не типізованих файлів?

3. Де можна вказати довжину запису файлу?

4. Як залежить швидкість обміну даними від довжини запису файла?

5. які специфічні процедури використовуються для роботи з не типізованими файлами?


Просмотров: 521


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.