ТОП 10:

Запись файла в режиме добавления



Процедура append. Чтобы открыть файл в режиме добавления информации в существующий файл, необходимо вызвать процедуру append, указав в качестве параметра файловую переменную (переменную типа text). этой процедурой следует пользоваться, если файл, подлежащий обработке, уже существует и данные, хранимые в нём, не должны быть утрачены.

 

Следующая программа, тоже, как и программа replace_fail, открывает файл test.txt, но уже в режиме добавления, и записывает в него две строки (дописывает в конец файла).

Programadd_fail;

varf : text; { текстовый файл }

i : integer;

Begin

assign ( f, ’test.txt’);

append (f); { открыть в режиме добавления }

For i:=8 to 9 do

Writeln (f, ' Информатика ', i) ;

Close(f); { закрыть файл }
end.

После выполнения приведенной программы содержимое файла test.txt опять меняется. Распечатка файла:

Информатика 6

Информатика 7

Информатика 8

Информатика 9

 

Закрытие файла

Процедура close. Перед завершением работы программа должна закрыть все открытые файлы. Это делается вызовом процедуры close. Этой процедуре в качестве параметра передается файловая переменная, связанная с файлом, который надо закрыть.

Пример использования процедуры:

close ( f ) ;

(смотри предыдущие примеры программ).

Переименование файла

Процедура Rename позволяет переименовывать существующий файл, связанный с указанной в качестве параметра файловой переменной. Следует учитывать, что процедура Rename применима только к закрытым файлам. Следующий фрагмент программы позволит вам переименовать файл TEST.DAT. в файл МЕМ.ТХТ.

Assign (file, ‘c:\test.dat’);

Rename (file, ‘c:\mem.txt’);

 

Стирание файла

Процедура Erase стирает файл с диска. При этом файловая переменная должна быть предварительно связана с реально существующим файлом. Например, с помощью следующих двух операций можно удалить с диска файл test.dat.

Assign (file, ‘c:\test.dat’);

Erase (file);

 

 

Объявление файловой переменной Обработка файлов
TypeFile_Integer=File of Integer; File_Char=File of Char; VarF1:File_Integer; F2:File_Char; F3:File of Integer; F4:Text; F5:File; Assign(F,’A:\int1.dat’) Установление связи между файловой переменной и файлом на диске
Reset(F) Открытие файла для чтения
Rewrite(F) Открытие файла для записи
Close(F) Закрытие файла
EOF(F) Признак конца файла
EOLN(F) Признак конца строки в текстовом файле
Erase(F) Удаление с диска файла, связанного с файловой переменной
Rename(F) Переименование файла, связанного с файловой переменной

Работа со строковыми типами данных

 

Строка – упорядоченная последовательность символов. Строковый тип данных – структурированный тип в Турбо-Паскале. Каждый символ строковой величины занимает 1 байт памяти (код А8СII). Количество символов в строке называется ее длиной. Длина строки может лежать в диапазоне от 0 до 255.

Присваиваемое значение строки, так же как и отдельный символ типа CHAR, заключается в апострофы.

Строковая константа — последовательность символов, заключенных в апострофы.

Например: ' это строковая константа', '272'.

Два следующих друг за другом апострофа ( ' ' ) обозначают пустую строку, т.е. строку с нулевой длиной. Если апострофы опушены, то компилятор рассматривает приведенный фрагмент текста как числовую величину или как идентификатор.

 

Описание (объявление) строковых переменных

Строковая переменная описывается в разделе описания переменных: VAR <переменная> : string[<максимальная длина строки>].

Например:

VAR dlinna : string[20];

В описании строки можно не указывать длину.

Например:

VAR S : string;

В таком случае считается, что она равна максимальной величине – 255.

Для доступа к отдельному символу в строке необходимо указать имя строки и в квадратных скобках номер позиции элемента (символа) в строке.

Элементы строки идентифицируются именем строки с индексом, заключенным в квадратные скобки.

Например: N[5], S[1], slovo[k+1].

Первый символ строки имеет номер 1. Индекс может быть положительной константой, переменной, выражением целого типа. Значение индекса не должно выходить за границы описания.

Тип string и стандартный тип charсовместимы. При этом по отношению к отдельному символу строки возможны все те же операции, что и к переменной типа char. В частности, возможны взаимные операции присвоения значений. Строки и символы могут употребляться в одних и тех же выражениях.

Операции над строками.

Операция сцепления

Операция сцепления (конкатенации) (+) применяется для соединения нескольких строк в одну результирующую строку. Сцеплять можно как строковые константы, так и переменные,

Пример:

'Мама'+' мьла'+' раму' . В результате получится строка: 'Мама мыла раму'. Длина результирующей строки не должна превышать 255.

 

Операции отношения

Операции отношения: =, <, >, <=, >=, <>. Позволяют произвести сравнение двух строк, в результате чего получается логическое значение (true или false), Операция отношения имеет приоритет более низкий, чем операция сцепления. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в таблице символьной кодировки. Если строки имеют различную длину, но в общей части символы совпадают, считается, что более короткая строка меньше, чем более длинная. Строки равны, если они полностью совпадают по длине и содержат одни и те же символы.

Пример:

Выражение   Результат  
'True1' <'True2'   True  
' Mother' >' MOTHER'   True   True  
'Мама' <> ' Мама'   True Тгие True  
'Cat' = 'Cat'   True   True  

 

 

Функция Сору

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

• имя строки, из которой должен извлекаться копируемый фрагмент,

• позицию в строке, начиная с которой будет копироваться фрагмент,

• число копируемых символов.

Сообщения об ошибке не будет, если начальная или конечная позиции копируемого фрагмента находятся вне пределов исходной строки символов. Результатом выполнения операции в первом случае будет строка нулевой длины, во втором — фрагмент от начальной позиции копирования до конца исходной строки.

Функция Сору(S, Pos, N) выделяет из строки S подстроку длиной N символов, начиная с позиции Pos. Здесь N и Pos – целочисленные выражения.

Пример:

Значение S   Выражение   Результат  
' Мама мыла раму'   Сору (S, 6,4)   'мыла'  
'Маша ела кашу'   Сору(S, 1,8)   'Маша ела'  

PROGRAM function_Copy;

VAR Word : STRING[20];

word1, word2, word3 : STRING[20];

BEGIN

Word:=’форматирование’;

Writeln (Word);

Word1 :=copy (Word, 1, 5);

Writeln (Word1); {на экран выводится форма}

Word2 :=copy (Word, 6, 3);

Writeln (Word2); {на экран выводится тир}

Word3 :=copy (Word, 8, 3);

Writeln (Word3); {на экран выводится ров}

END.

Функция Concat

Функция Concat(S1, S2, …, Sn) выполняет сцепление (конкатенацию) строк S1, S2, …, Sn в одну строку.

Пример:

Выражение   Результат  
Concat ( 'Маша ',' ела ',' кашу' )   ' Маша ела кашу'  

PROGRAM function_Concat;

VAR slovo, s1, s2, s3 : STRING;

BEGIN

Writeln(’введите слово’);

Readln(s1);

Writeln(’введите слово’);

Readln(s2);

Writeln(’введите слово’);

Readln(s3);

slovo:= concat(s1, s2, s3);

Writeln(slovo);

Readln;

END.

Функция Length

Встроенная функция Length (длина) позволяет определить фактическую длину текстовой строки, хранящейся в указанной переменной (а не величину предельного размера строки, установленную при декларации).

При подсчете фактической длины строки учитываются все входящие в нее символы, в том числе и пробелы.

 

Функция Length(S) определяет текущую длину строки S. Результат — значение целого типа.

Пример:

 

 

PROGRAM function_Length;

VAR Words : STRING;

BEGIN

Writeln(’введите слово’);

Readln(Words);

Writeln(’слово состоит из ’, Length (Words),’букв. ’);

END.

 

Функция Pos

С помощью функции Poz можно осуществить в некоторой строке поиск определенного фрагмента. Если заданный фрагмент в строке присутствует, то функция возвращает номер позиции в строке, с которой этот фрагмент начинается. Если фрагмент в строке не найден, то функция возвращает 0.

Функция Pos требует полного совпадения искомого фрагмента и фрагмента строки, в которой производится поиск. Причем большие и маленькие буквы считаются различными символами(«К»не идентично«к»).

Функция Pos(S1, S2) обнаруживает первое появление в строке S2 подстроки S1. Результат – целое число, равное номеру позиции, где находится первый символ подстроки S1. Если в S2 подстроки S1 не обнаружено, то результат равен 0.

Пример:

PROGRAM function_Pos;

VAR Words : STRING[50];

Search_Word : STRING[20];

Position : INTEGER;

BEGIN

Position := Pos(Serch _Word, Words);

Writeln(Position );

END.

 

Процедура Delete

Процедура Delete удаляет в исходной строкe фрагмент определенной длины, начинающийся с указанной позиции. Так, оператор Delete(Words,2,3); удаляет из строки Words фрагмент, состоящий из трех символов и начинающийся со второй позиции.

Процедура Delete(S, Poz, N) - удаление из строки S начиная с позиции Poz N символов,.

Пример:

Исходное значение S   Оператор   Конечное значение S  
' abcdefg '   Delete ( S, 3, 2 )   ' abef '  
' abcdefg '   Delete( S, 2, 6 )   ' а '  

В результате выполнения процедуры уменьшается текущая длина строки в переменной S.

 

Процедура Insert

Процедура Insert вставляет в исходную строку, начиная с указанной позиции, другую строку. Оператор Insert(Word1, Words,4); указывает, что необходимо вставить строку Word1 в строку Words, начиная с 4-й позиции (перед ней). Процедура Insert (S1, S2, Poz) – вставка строки S1 в строку S2, начиная с позиции Poz.

Пример:

Исходное значение S2 Оператор Конечное значение S2
'ЭВМ РС'   Insert (' IВМ-' , S2, 5)   ' ЭВМ IВМ-РС'  
'Рис. 2'   Insert('N' ,S2, 6)   ' Рис . N2 '  

 

PROGRAM procedura _Insert_i_Delete;

VAR words : STRING[20];

word1 : STRING[20];

BEGIN

Word:=’математика’;

Writeln (Word);

Delete(word, 1, 2);

Writeln (Word); {на экран выводится тематика}

Delete(word, 5, 4);

Writeln (Word); {на экран выводится тема}

Word1:=’сис’;

Insert (word1,word, 1);

Writeln (Word); {на экран выводится система}

END.

 

Функция UpCase

Функция UpCas позволяет преобразовывать символ любой литеры из строчного в прописной. Эта функция рассчитана на обработку отдельного символа. Поэтому для обработки строки символов с помощью этой функции приходится организовывать цикл.







Последнее изменение этой страницы: 2016-04-08; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.204.55.168 (0.01 с.)