Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Краткие теоретические сведения




Помимо числовой информации компьютер может обрабатывать символьную информацию. Object Pascal оперирует с символьной информацией, которая может быть представлена отдельными символами или строками символов.

Символьные типы

Данные символьного типа предназначены для хранения одного символа. Для символов используется тип Char. Кроме Char в Delphi 7 имеется еще два символьных типа – ANSIChar и WideChar. Пример объявления переменной типа Char. var c: char;

Для кодировки символов в Windows используется код ANSI (American Natinal Standards Institute – американский национальный институт стандартизации). В соответствии с этой таблицей каждому символу соответствует целое число в диапазоне 0..255. Это число служит кодом внутреннего представления символа. Символы с номерами от 0 до 31 являются служебными символами, т.е. предназначены для управления отображением информации. Например, символ с кодом 9 вставляет в текст знак табуляции, символ с кодом 13 эквивалентен нажатию клавиши Enter (конец абзаца), символ с кодом 27 – ESC.

Строковые типы

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

Пример

'Текстовая строка',

'abcde',

'S=10,24'.

Delphi поддерживает три физических строковых формата: короткий – ShortString, длинный – AnsiString, широкий – WideString и один логический строковый тип – String.

Переменные типов AnsiString и WideString – это динамически распределяемые массивы символов, максимальная длина которых ограничивается только наличием памяти.

Тип ShortString имеет максимальную длину, равную 255 символам. Тип String – это, по существу, массив Array [0..255] of char.

Тип ShortString предназначен для обеспечения совместимости с ранними версиями Delphi.

Тип String в зависимости от директив компилятора интерпретируется либо как AnsiString, либо как ShortString.

Пример объявления строковых переменных:

var st: String;

st1: String[10];

В Object Pascal имеется простой доступ к отдельным символам строковой переменной: i-й символ переменной st записывается как

st[i]. Например, если st – это 'Строка', то st[1] – это 'С', st[2] – это 'т',

st[3] – 'р' и так далее.

Над строковыми данными определена операция слияния (конкатенации), обозначаемая знаком +.

Пример

a:= 'Object';

b:= 'Pascal';

c:= a + b;

В этом примере переменная c приобретет значение 'ObjectPascal'.

Кроме слияния над строками определены операции сравнения <, >, =, <>, <=, >=. Две строки сравниваются посимвольно, слева направо, по кодам символов. Если одна строка меньше другой по длине, недостающие символы короткой строки заменяются символом с кодом 0.

 

Процедуры и функции для работы со строками

Ниже приведены основные стандартные процедуры и функции для работы со строками.

length(s:string): integer;

Функция возвращает число символов в строке s.

Пример

n:= length('Pascal'); //n будет равно 6

concat(s1,[s2,...,sn]: string): string;

Возвращает строку, представляющую собой сцепление из строк s1, s2, ….., sn. Идентична операции «+» для строк, но работает менее эффективно.

Пример

s:=concat('aa', 'xx', 'zz'); //s будет равно 'aaxxzz'

copy(s:string; index:integer; count: integer): string;

Функция возвращает подстроку, выделенную из исходной стро-

ки s, длиной count символов, начиная с символа под номером index.

Пример

s:= 'Интегрированная среда Delphi';

s1:= copy(s, 1, 7); //s1 будет равно 'Интегри'

s2:= copy(s, 17, 5); //s2 будет равно 'среда'

s3:= copy(s, 23, 6); //s3 будет равно 'Delphi'

delete(var s:string; index,count:integer);

Процедура удаляет из строки s подстроку длиной count символов, начиная с символа под номером index.

Пример

s:= 'Интегрированная среда Delphi';

delete(s,1,16); //s будет равно 'среда Delphi'

insert(source:string; var s:string;index:integer);

Процедура предназначена для вставки строки source в строку s, начиная с символа index этой строки.

Пример

s:= 'Object';

insert('Pascal',s,7); //s будет равно 'ObjectPascal'

pos(substr,s:string):integer;

Функция производит поиск в строке s подстроки substr. Результатом функции является номер первой позиции подстроки в исходной строке. Если подстрока не найдена, то функция возвращает 0.

Пример

s:= 'ObjectPascal';

x1:= pos('Pascal', s); //x1 будет равно 7

x2:= pos('Basic', s); //x2 будет равно 0

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

chr(n: byte): char - Функция возвращает символ по коду, равному значению выражения n.

ord(ch: char): byte; В данном случае функция возвращает код символа ch.

upcase(c: char): char; Если c – строчная латинская буква, то функция возвращает соответствующую прописную латинскую букву, в противном случае символ c возвращается без изменения.

 

Применение компонентов ListBox и

ComboBox для работы со строками

При работе со строками ввод и вывод информации на экран удобно организовывать с помощью компонентов ListBox и ComboBox.

Пиктограмма компонента ListBox находится на странице Standard Палитры компонентов. Компонент ListBox представляет собой список, элементы которого выбираются при помощи клавиатуры или «мыши». Список элементов задается свойством Items. Методы Add, Delete и Insert используются для добавления, удаления и вставки строк соответственно. Для определения номера выделенного элемента используется свойство ItemIndex. Для добавления строк в ListBox необходимо воспользоваться компонентом Edit.

Пиктограмма компонента ComboBox также расположена на странице Standard Палитры компонентов. Компонент ComboBox представляет собой комбинацию списка ListBox и редактора Edit. По внешнему виду компонент ComboBox напоминает строку ввода

Edit, но дополнительно имеет в правой части кнопку со стрелкой. Если щелкнуть мышью по этой кнопке, появится выпадающий список, подобный списку компонента ListBox. Используя строку ввода, можно вводить в список новые элементы, осуществлять поиск нужного элемента в списке, отображать активный элемент списка.

Свойства компонента ComboBox заимствованы у компонентов Edit и ListBox. Для работы с окном редактирования используется свойство Text, как в Edit, а для работы со списком используется свойство Items, как в ListBox. Основные операции для обработки списка в компоненте ComboBox – добавление, удаление, поиск элементов – осуществляется так же, как и в списке ListBox.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...