Тип String интерпретируется компилятором Object Pascal по-разному, в зависимости от значения директивы компилятора $H. Если она включена – {$H+} – то тип String интерпретируется как AnsiString, если нет – {$H-} – то как ShortString. По умолчанию действует директива {$H+}.
Если в разделе описаний указано, например String[10], то независимо от директив компилятора тип трактуется как ShortString с указанным числом символов.
Тип WideString также представляет собой динамически размещаемые в памяти компьютера строки, длина которых ограничена только объёмом свободной памяти компьютера. Однако в отличие от строки типа AnsiString каждый символ является Unicode-символом, т. е. кодируется 2 байтами.
Пример 43. В строке ′Ivanov I.′ дописать полностью имя (Ivan).
var s : ansistring;
begin
s:='Ivanov I.';
setlength(s, 12);
s[9]:='v'; s[10]:='a'; s[11]:='n'; s[12]:='.';
writeln(s);
readln;
end.
Стандартные подпрограммы для строк.
function AnsiCompareStr(const S1, S2 : string): integer;
Сравнивает две строки S1 и S2 в кодировке Ansi с учётом регистра. Возвращает значение меньше 0, если S1<S2, 0, если S1=S2, и больше 0, если S1>S2. В русифицированных версиях Widows может быть применена к строкам, содержащим русские буквы.
function AnsiCompareText(const S1, S2 : string): integer;
Полностью аналогична предыдущей функции за исключением того, что сравнение символов осуществляется без учёта регистра.
function AnsiLowerCase(const S : string): string;
Возвращает в кодировке Ansi строку S, преобразованную к нижнему регистру. В русифицированных версиях может быть применена к строкам, содержащим русские буквы.
function AnsiPos(const Substr, S : string): integer;
Возвращает позицию (индекс) первого вхождения Substr в S. Если Substr не входит в S, то возвращается 0. В русифицированных версиях Windows может быть применена к строкам, содержащим русские буквы.
function AnsiUpperCase(const S : string): string;
Возвращает строку S в кодировке Ansi, преобразованную к верхнему регистру. В русифицированных версиях Windows может быть применена к строкам, содержащим русские буквы.
function Concat(S1, S2…SN : string): string;
Возвращает строку, представляющую сцепление строк S1, S2… SN. Идентична операции + для строк.
function Copy(S; Index, Count: integer): string;
Параметр S – это строка типа string или динамический массив. Функция Copy возвращает подстроку строки S, начинающуюся с символа с номером Index и содержащую Count символов.
procedure Delete(var S : string; Index, Count : integer);
Удаляет из S подстроку, начинающуюся с символа с номером Index и содержащую Count символов.
procedure Insert(Substr : string; S : string; Index : integer);
Вставляет строку Substr в S, начиная с символа с номером Index.
function Length(S : string): integer;
Возвращает число символов в строке S.
function Pos(Substr, S : string): integer;
Возвращает позицию (индекс) первого вхождения подстроки Substr в строку S. Если Substr нет в S, то возвращается 0.
procedure SetLength(var S; NewLength : integer);
Параметр S является строкой или динамическим массивом. Процедура устанавливает новую длину NewLength строки S. Если строка имеет тип ShortString, то значение параметра NewLength должно находиться в диапазоне 0..255. Для длинных строк значение параметра NewLength ограничено лишь размерами доступной памяти компьютера. При увеличении длины строки старые значения, находившиеся там, сохраняются, а во вновь добавленных позициях находятся неопределённые значения.
function StringOfChar(Ch : char; Count : integer): string;
Создаёт строку, состоящую из Count раз повторяющегося символа Ch.
function Trim(const S : string): string;
Удаляет из строки S начальные и завершающие пробелы и управляющие символы.
Лабораторная работа 9
Программирование с использованием файлов. Работа с файлами заключается в записи и считывании информации. Для того чтобы указать, с каким элементом будет производиться очередная операция чтения или записи, существует понятие указателя на доступный элемент файла. После каждого чтения или записи указатель перемещается на следующий элемент файла.
Перед использованием файловой переменной она должна быть связана с внешним файлом ( файлом на диске) с помощью вызова процедуры
AssignFile(< файловая переменная>, < имя файла>);
здесь <файловая переменная> – имя переменной файлового типа, объявленной в программе; <имя файла> – символьная строка, содержащая имя файла. Если файл находится в одной папке с обрабатывающей его программой, то достаточно указать только имя файла, в противном случае надо указать полный путь к файлу, например:
′c:\files\z1.txt′
Когда связь с внешним файлом установлена, его можно открыть для ввода или вывода информации. Существующий файл можно открыть с помощью процедуры
Reset(<файловая переменная>);
Процедура reset открывает существующий внешний файл, имя которого было связано с файловой переменной. Если внешний файл с указанным именем отсутствует, то возникает ошибка периода выполнения программы. Если файл уже открыт, то он сначала закрывается, а затем открывается вновь. Файловый указатель устанавливается на элемент файла с порядковым номером 0.
Текстовый файл, открытый процедурой reset, доступен только для чтения. Для типизированных и нетипизированных файлов, открытых процедурой reset, допускается выполнять операции чтения и записи в файл.
Новый файл можно создать и открыть для записи с помощью процедуры
Rewrite(<файловая переменная>);
Процедура rewrite создаёт новый файл, имя которого связано с файловой переменной. Если файл с указанным именем уже существует, то он удаляется и на его месте создаётся новый пустой файл. Текущая позиция в файле устанавливается на начало файла, т. е. указатель будет указывать на элемент с порядковым номером 0.
Если процедура rewrite открывает текстовый файл, то он становится доступным только для записи. Для типизированных и нетипизированных файлов, открытых процедурой rewrite, допускается выполнять операции чтения и записи в файл.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 |


