Краткие теоретические сведения
Помимо числовой информации компьютер может обрабатывать символьную информацию. 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|