Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Файлы без типа (нетипизированные файлы)

End.

Close(Note)

ReadLn(Note)

Begin

While Not Eoln(Note) Do

Begin

While Not Eof(Note) Do

Begin

End.

Close(Note)

Begin

While Not Eof (Note) Do

END.

WRITELN(F2,POLE)

BEGIN

BEGIN

READLN(F1,POLE);

WHILE POS(‘DC-101’, POLE) <> 0 DO

PZ:= POS(‘DC-101’, POLE);

DELETE(POLE,PZ+3,1);

INSERT(‘2’,POLE,PZ+3);

END;

END;

CLOSE(F1);

CLOSE(F2);

 

Здесь читаются последовательно строки из входного файла и в каждой строке в номере группы заменяется символ 1 на 2. Скорректированные строки выводятся в новый файл.

Пример 5. Пусть файл с именем Note. txt содержит некоторый текст. Требуется подсчитать количество строк в этом тексте.

Var Note: Text; К: Integer;

Begin Assign(Note,'Note.txt');

Reset(Note);

K:=0;

ReadLn(Note); K:=K+1

End;

WriteLn('Количество строк равно',К);

Используемый здесь оператор ReadLn (Note) «пролистывает» строки из текстового файла Note, не занося их в какую-либо переменную.

Пример 6. В текстовом файле Note. txt определить длину самой большой строки.

Var Note: Text;

Мах,К: Integer; С: Char;

Assign(Note,'Note.txt');

Reset(Note);

Max:=0;

K:=0;

Read(Note,С); K:=K+1

End;

If K>Max Then Max:=K;

End;

WriteLn('Наибольшая строка имеет', Max,'знаков');

Здесь каждая строчка прочитывается посимвольно, при этом в переменной К работает счетчик числа символов в строке. В переменной Мах отбирается наибольшее значение счетчика.

Любой файл может быть представлен в виде последовательности символов кода ASCII. Турбо Паскаль позволяет рассматривать файл с любой организацией как бы состоящим из блоков по 128 байт.

Файлы без типа используются обычно при копировании файлов, когда не важна внутренняя структура записи файла. Если длина сегмента на диске 1024 байта, то количество блоков в группе равно 8 при длине блока 128 символов.

Обмен информацией происходит непосредственно между программой и файлом без использования буферной памяти. Адресация блоков производится по их номерам. Блоки в этом случае являются компонентами файла. Использование файлов без типа приводит к экономии памяти.

Для работы с такими файлами предусмотрены специальные процедуры, позволяющие производить обмен группами блоков по 128 символов.

 

Формат описания

VAR < имя файла >: FILE;

 

BLOCKREAD(<имя файла>,<переменная>,<число компонент> [,<факт.число>]); – для чтения блока из файла.

BLOCKWRITE(<имя файла>,<переменная>,<число компонент> [,<факт.число>]); – для записи блока в файл.

Здесь <имя файла> – имя файла без типа; <переменная> – имя переменной для чтения или записи; <число компонент> – количество передаваемых компонент за один раз; <фактическое число> – количество фактически переданных записей длиной 128 байт.

Файл для блочного ввода-вывода описывается с типом FILE. Для файла без типа нельзя использовать процедуры READ и WRITE.

При открытии файла без типа можно указать длину записи файла в байтах. Она указывается вторым параметром при обращении к процедуре RESET или REWRITE, в качестве которого используется выражение типа WORD. Если длина записи не указана, она принимается равной 128 байтам.

Пример 7. Копирование данных из файла FROMF в файл TOF.

 

VAR FROMF, TOF: FILE;

NR, NWR: WORD;

NAME:STRING[12];

BUF: ARRAY[1..2048] OF CHAR;

<== предыдущая лекция | следующая лекция ==>
While not eof(f1) do | Лекция № 23 основы програмирования на языке qbasic
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 313; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.