рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Данные строкового типа.

Данные строкового типа. - раздел Информатика, Данные строкового типа В Языке Delphi Для Обработки Текстов Можно Использовать Четыре Строковых Типа...

В языке Delphi для обработки текстов можно использовать четыре строковых типа:

- String – универсальная строка;

- AnsiString – длинная строка;

- ShortString – короткая строка;

- Pchar – строка, оканчивающаяся нулем;

Данные этих типов представляют собой цепочки символов типа Char. Все символы пронумерованы, поэтому любую строку можно рассматривать (и обрабатывать) как одномерный массив символов. Первый символ имеет номер 1. В программе можно обращаться к любому символу строки, указывая его порядковый номер в квадратных скобках после имени переменной.

 

4.15.1. Строка типа String.

Тип String является универсальным. В зависимости от директивы компилятора {$H} он может вести себя как "короткая строка" или как "длинная строка". Обычно строковый тип объявляют в разделе переменных. Форма объявления имеет вид:

Var список : String;

Если задана директива {$H}, то строка типа String ведет себя как "длинная строка", если же установлена директива {$H-}, то строка ведет себя как "короткая строка. При объявлении данных типа String можно указывать максимальную длину строки в квадратных скобках после зарезервированного слова String

Var список : String[n] ;

где n - любая константа порядкового типа не более 255, если n не указано, то то длина строки имеет максимальное значение равное 255.

Пример. Var Stx : String ;

St20 : String[20];

Строки с явным указанием размера всегда являются "короткими строками".

Для каждого символа в строке отводится один байт. Самый первый байт имеет номер 0 и содержит текущую длину строки. Первый символ строки занимает второй байт и имеет номер 1.

К любому символу в строке можно обратиться как к элементу массива, например

Var St : String ;

. . . . . . . .

If St[k] = 'A' Then . . . .

 

4.15.2. Строка типа AnsiString

Этот тип предназначен для размещения символов ANSI – кодировки и представляет собой массив символов, в который можно поместить любое количество символов.

Пример. Var Sk : String ;

Sa : AnsiString ;

Переменная типа AnsiString фактически является указателем на динамически выделенную под эту строку память. Если строка пустая, то этот указатель имеет значение nil. Динамическая область памяти, выделяемая для переменной типа AnsiString имеет достаточно сложную структуру. Левые восемь байт предназначены для хранения служебной информации (будем нумеровать их отрицательными числами). Байты с порядковыми номерами 0..N-1 , где N – длина строки, отводятся под символы строки (эти байты индексируются начиная с единицы). В байте номер N хранится признак конца строки (символ с кодом 0), необходимый для совместимости со строкой типа Pchar широко используемой в Windows.

Байты с номерами –4 .. –1 предназначены для хранения текущей длины строки. Байты с номерами –8..-5 предназначены для хранения кратности ссылок на данную строку. Байты с отрицательными номерами непосредственно недоступны для программы.

 

4.15.3. Строка типа ShortString

Строка типа ShortString представляет собой массив, в который можно поместить до 255 символов. Максимальная длина строки равна 256 байт. Байт с номером 0 предназначен для хранения текущей длины строки, причем длина строки в этом байте представляется в символьном виде.

Строка ShortString совместима со строками любых других типов, ей можно присваивать значение другой строки любого типа. Значение строки ShortString можно так же присваивать строке другого типа кроме строки, оканчивающейся нулем (типа Pchar).

4.15.4. Строка типа Pchar

Эта строка введена в Delphi для совместимости с подпрограммами ОС Windows? которые работают только с подобными строками. Строка типа Pchar представляет собой последовательность символов, завершающуюся символом с кодом 0. У таких строк, как и у "длинных" строк, никаких ограничений на длину строки не накладывается (длина строки лимитируется только доступной памятью). Фактически тип Pchar является указателем на ту область памяти, где располагается строка.

4.15.5. Операции.

К строкам и отдельным элементам строки можно применять операции сравнения > >= < <= = <> .

Операции сравнения над двумя строками выполняются посимвольно, слева направо с учетом внутренней кодировки символов. Если одна строка меньше другой по длине, то недостающие символы короткой строки заменяются значением Chr(0). При сравнении сравниваются коды символов. Следует иметь в виду, что русские буквы пронумерованы не подряд. Диапазоны кодов символов приведены на рис.7.5.

Цифры

Символ 0 . . . . . . 9

код 80 . . . . . . 89

Латинские буквы

Символ A . . . . . . Z ; a . . . . . . z

Код 65 . . . . . 90 ; 97 . . . . . . 122

Русские буквы

Символ А . . . .Я ; а . . . . п ; р . . . . я

Код 128 . . . 159 ; 160 . . . 175 ; 224 . . . 239

 

Код символа можно определить с помощью стандартной функции ORD( ).

К строкам можно применять операцию конкатенации (+) - соединение строк в одну строку.

Const T1 = ' ABC ' , T2 = ' SX ' ;

Var

Rt : String [ 10 ] ;

. . . . . . .

Rt : = T1 + T2 ;

 

Rt = ' ABCSX '

 

Если длина сцепленной строки превысит размер строки (n), то лишние символы справа отбрасываются.

В ТР можно использовать имена функций типа String, то есть можно объявить функцию так

Function имя (список) : String;

При этом нельзя указывать длину строки.

 

4.15.5. Стандартные процедуры и функции.

В Delphi определен широкий набор стандартных процедур и функций для работы со строками.

Функция Concat ( S1, S2, . . . Sn ); - возвращает конкатенацию (соединение) строк S1, S2, . . .в одну строку.

Пример.

Var T1 , T2 , Rt : String ;

. . . . . . .

T1 : = ' ABC ' ; T2 : = ' XZ ' ;

Rt : = Concat ( T1 , T2 ) ;

. . . . . . .

Rt ' ABCXZ '

 

Функция Copy (s, k, n) - копирует из строки s подстроку длиной n символов, начиная с позиции k.

Пример : Var St1 , St2 : String ;

. . . . . . . .

St1: = ' ABCZY ' ;

St2 : = Copy ( St1 , m , n ) ;

 

Если m = 3 , n = 2 то результат St2 = ' CZ '

 

Функция Length (s) - возвращает текущую длину строки.

Пример

ds : = Length ( St1 ) ;

 

ds = 5

 

Функция Pos (S1, S2); - определяет номер позиции первого символа подстроки S1 в строке S2 (иначе 0).

Пример : Var Sa , Sb : String ;

N : Integer ;

. . . . . . . . .

Sb : = ' ABCDFBE ' ;

Sa : = ' CD ' ;

 

N : = Pos ( Sa , Sb ); N = 3

N : = Pos ( ' B ' , Sb ) ; N = 2

N : = Pos ( ' X ' , Sb ) ; N = 0

Процедура Delete(s, m, n); -возвращает строку, полученную путем удаления из s n символов, начиная с позиции m.

 

Пример : Var Sx : String ;

K , J : Integer ;

. . . . . .

 

Sx : = ' ABCDEF ' ;

Delete ( Sx , K , J ) ;

 

если K = 2 , J = 3 то Sx = ' AEF '

 

Процедура Insert(s1, s2, k ); - вставляет строку s1 в строку s2, начиная с позиции k.

 

Пример : Var Sa , Sb : String ;

. . . . .

 

Sa : = ' 12345 ' ; Sb : = ' + ' ;

 

Insert ( Sb , Sa , 4 ) ;

 

Sa = ' 123 + 456 '

 

Процедура Str( X[: sp:dz], s1); - преобразует число X вещественного или целого типа в строку символов s1 (также, как это делает процедура Writeln перед выводом). Параметры: sp - ширина поля; dz - количество десятичных знаков).

 

Пример : Var Sa : String ;

N : Integer ;

A : Extended ;

. . . . . . . .

Str ( N , Sa );

N = 15 Sa = ' 15 '

 

Str ( A , Sa ) ;

A = 2 . 56 E 3 Sa = ' 2.56000. . . 0E + 0003 '

Str ( A : 6 : 2 , Sa ) ;

A = 8 . 23E+1 Sa = 82.30

 

Процедура Val (s, v, k); - преобразует строку s в ее числовое представление, определяемое переменной v целого или вещественного типа.

 

val ( Sa , Z , n ) ;

 

Sa = ' 2 7 . 6 ' Z = 2 . 7600. . .0E + 0001

 

Если в строке sa встретится недопустимый символ, то его код возвращается в параметре k.

 

– Конец работы –

Эта тема принадлежит разделу:

Данные строкового типа

На сайте allrefs.net читайте: Данные строкового типа.

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Данные строкового типа.

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Массивы символов.
Массивы символов и массивы строк удобно использовать, когда количество символов в обрабатываемой последовательности более 255. Максимальное количество символов в массивах символов и строк не должно

Отладка программы
Отладка программы - это этап разработки программы, на котором с помощью ЭВМ осуществляется поиск и исправление ошибок в программе. Цель отладки - показать, что программа правильно решает поставленн

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги