/   Реферати  
 ДОКУМЕНТІВ 
20298
    КАТЕГОРІЙ 
30
Бібліотека   Портфель   Замовлення  
Mobile  Mac  Linux  Windows  Партнерам і рекламодавцям  Зона зареєстрованих користувачів  Результати пошуку  Форум  Новини  Новини  Події  Куплю/продам  Кlubніка  МегаДОСТУП  Новини сайту  Про проект  Зворотній зв`язок  Рекламодавцям  Контакт 

Тип безтипових файлів, Детальна інформація

Тема: Тип безтипових файлів
Тип документу: Реферат
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 0
Скачувань: 512
Скачати "Реферат на тему Тип безтипових файлів"
Сторінки 1   2   3   4   5  
Реферат на тему:

Тип безтипових файлів

Розглянемо програму посимвольного копіювання файлів:

program StupidCopy;

var f, g : file of char; c : char; s : string;

begin

writeln('Задайте ім'я початкового файла');

readln(s); assign(f, s);

writeln('Задайте ім'я цільового файла');

readln(s); assign(g, s);

reset(f); rewrite(g);

while not eof(f) do

begin

read(f, c); write(g, c);

end;

close(f); close(g);

end.

Здається, що при виконанні цієї простенької програмки все гаразд, оскільки за рахунок використання буферів фізичні файли читаються-записуються порціями по кілька блоків, пристрої при цьому працюють найкращим чином, а переміщення інформації відбуваються головним чином усередині оперативної пам’ яті, тобто швидко.

Спробуйте запустити її на виконання, указавши вхідним файл розміром у кілька сотень кілобайтів – виконання займе секунди й десятки секунд. Напрошується висновок, що при її виконанні дещо здійснюється не найкращим чином. Розглянемо один із способів прискорення роботи з файлами.

Система Турбо Паскаль дозволяє створити додатковий власний буфер і власноруч описати його застосування. Це виявляється набагато ефективнішим від використання буферів, що забезпечуються системою. А реалізується це за допомогою безтипових файлів.

Тип безтипових файлів задається словом file. Файлову змінну цього типу, як і всіх інших файлових типів, треба спочатку зв’ язати з фізичним файлом і відкрити, установивши в початковий стан для читання чи запису. Процедури відкривання RESET і REWRITE тут мають по 2 параметри. Крім імені файлової змінної, у їх виклику вказується розмір "зовнішнього буфера" в байтах. Цей буфер ще називається блоком і явно в Паскаль-програмі не позначається. Через нього дані копіюються з фізичного файла до "внутрішнього буфера". Розмір блока може бути в межах від 1 до 65535. Як не дивно, найкраще встановити його рівним 1:

ReSet(f, 1) або ReWrite(g, 1).

Чому саме так, ми скажемо далі.

Уся подальша обробка безтипового файла описується зовсім іншими засобами.

Читання безтипових файлів задає процедура BLOCKREAD із чотирма параметрами. Усі вони, крім третього – параметри-змінні. У виклику процедури першим аргументом є ім’ я файлової змінної, другий задає місце в пам’ яті, з якого починається "внутрішній буфер", третій – кількість блоків, які треба прочитати з файла, а в четвертому, типу Word, повертається кількість блоків, яка насправді читається за виконання виклику. Наприклад, за означеннями

var f : file;

inbuf : array[1..100] of char;

blsz : Longint; numbl, numblre : Longint

та операторами й викликами

blsz:=4; numbl:=25;

Сторінки 1   2   3   4   5  
Коментарі до даного документу
Додати коментар