Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Программирование в системе Delphi с помощью строк




Целью данного раздела является изучение разновидностей строк, получения навыков описания, ввода, вывода и обработки строк.

Типы строк

Для обработки текстов в Object Pascal используются следующие типы:

– короткая строка ShortString или String [N], где N <= 255;

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

– широкая строка WideString;

– нуль-терминальная строка PChar.

Общим для этих типов является то, что каждая строка трактуется как одномерный массив символов, количество символов в котором может меняться в работающей программе: для ShortString – от 0 до 255; для String [N] длина строки меняется от 0 до N; для String, WideString и PChar − от 0 до 2 Гбайт.

Тип String имеет разный смысл в зависимости от директивы компилятора $H. Если включена директива {$H+} (она включена по умолчанию), то String интерпретируется компилятором как тип AnsiString − длинная строка. Если же включить директиву {$H-}, то String интерпретируется компилятором как тип ShortString − короткая строка.

Если в объявлении типа после ключевого слова String следует число символов в квадратных скобках (например, String [4]), то, независимо от директив компилятора, тип трактуется как короткая строка с указанным числом символов.

Для объявления короткой строки максимальной длины может использоваться стандартный тип ShortString (эквивалентно String [255]).

При объявлении короткой строки компилятор выделяет для ее размещения на один байт больше (добавляется нулевой байт) и помещает в нулевой байт текущую длину строки.

В коротких и длинных строках используются однобайтовые символы ANSI. Однобайтный символ связан с одним из 256 возможных значений, которые трактуются в зависимости от установленной в Windows национальной страницы. 256 символов вполне достаточно для отображения национального алфавита любого европейского языка.

В Delphi введены также широкие строки, объявляемые стандартным типом WideString. По своим свойствам они идентичны длинным строкам String, но отличаются от них тем, что для представления каждого символа используются не один, а два байта.

Для отображения алфавита некоторых азиатских языков 256 символов недостаточно. В этом случае используются двухбайтные символы кода Unicode, в котором младший байт обычно кодируется семибитным ANSI – кодом, а старший указывает, как должен трактоваться этот код. Символ Unicode в памяти занимает одно двухбайтовое слово, которое имеет 65536 возможных значений. С помощью этого кода можно представить все символы всех языков мира. Двухбайтные символы Unicode объявляются стандартным типом WideChar, а составленные из них строки – типом WideString.

Короткие, длинные и широкие строки нумеруются с 1.

Нуль-терминальные строки представляют собой цепочки символов, ограниченные символом #0. Максимальная длина такой строки лимитируется только доступной памятью и может быть очень большой. Нуль-терминальные строки нумеруются с 0. В нуль-терминальных строках используются однобайтовые символы ANSI. Необходимость в нуль-терминальных строках возникает при прямом обращении к АРI -функциям ОС. При работе с компонентами Delphi в основном используются более удобные длинные строки.

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

var

swS:WideString; // широкая строка

pcS: PChar; // нуль-терминальная строка

acS: array [0..1000] of Char; // строка длиной до 1000 символов

ssS: String [250]; // короткая строка длиной до 250 символов

ssMax: ShortString; // короткая строка длиной до 255 символов

stS: String; //длинная строка

При объявлении длинной строки stS компилятор выделит для переменной 4 байта, достаточные для размещения адреса той ячейки памяти, начиная с которой будет фактически располагаться символьная строка. Говорят, что stS ссылается на строку. Такого рода переменные-ссылки называются указателями.

При объявлении переменной pcS типа PChar компилятор считает эту переменную указателем и выделит для нее 4 байта.

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

К строкам можно применять операцию «+» − конкатенации (сцепление или объединение) строк. Например:

stS:= ‘a’ +’b’; // stS содержит "ab"

stS:= stS + ‘c’; // stS содержит "abc"

Операции отношения =, <>, >, <, >=, <= выполняются над двумя строками посимвольно, слева направо, с учетом внутренней кодировки символов. Если одна строка меньше другой по длине, недостающие символы более короткой строки заменяются значением Chr (0). Функция Chr (0) преобразует целочисленный аргумент к эквивалентному символу в соответствии с кодовой таблицей. Функция Chr (0) и #0обозначают один и тот же символ. Результаты операций отношения приведены ниже (табл.9.1).

Таблица 9.1

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

Значение S Значение S1 S>S1 S>=S1 S<S1 S<=S1 S=S1 S<>S1
‘abc’ ‘abc’ false true false true true false
‘abcd’ ‘abc’ true true false false false true
‘bac’ ‘abc’ true true false false false true

Текущую длину строки можно получить с помощью функции Length. Со строками можно работать как с одномерными символьными массивами:

n:=0;

for k:=1 to Length(s) do

if s[k] in [0..9] then n:=n+1;

В данном примере осуществляется подсчет количества символов цифр в строке. Операция in проверяет принадлежность символа строки s[k] множеству целых чисел [0..9].

В следующем примере уничтожаются все ведомые (хвостовые) пробелы в длинной строке stS:

while (Length(stS) <> 0) and (stS [Length(stS)] = ’ ‘) do

SetLength (stS, Length (stS) –1);

Стандартная процедура SetLength устанавливает новую длину строки stS.

Многострочные окна редактирования Memo и RichEdit

Компоненты Memo и RichEdit являются окнами редактирования многострочного текста. Они так же, как и компонента Edit, снабжены многими функциями, свойственными большинству редакторов. При редактировании текста можно использовать «горячие» клавиши:

1) Ctrl-C – копирование выделенного текста в буфер обмена;

2) Ctrl-X – вырезание выделенного текста в буфер обмена;

3) Ctrl-V – вставка текста из буфера обмена;

4) Ctrl-Z – отмена последней команды редактирования.

В компоненте Memo текст выравнивается с помощью свойства Aligment, значения которого могут быть следующими:

1) taLeftJustify; // выравнивается по левой границе (по умолчанию);

2) taСenter; // выравнивается по центру;

3) taRightJustify;// выравнивается по правой границе.

Если вы сохраните в файле текст, введенный или отредактированный пользователем, то будет создан текстовый файл, содержащий только символы и не содержащий элементов форматирования. При последующем чтении этого файла в Memo формат будет определяться текущим состоянием свойства Font компоненты Memo, а не тем, в каком формате ранее вводился текст.

Для доступа ко всему содержимому Memo используется свойство Text типа TString. Для доступа к отдельным строкам используется свойство Lines типа Tstring:

Memo1.Lines[5]:=’abc’;

Очистить Memo можно методом Clear:

Memo1.Clear;

Добавить строку можно с помощью метода Add:

Memo1.Lines.Add(‘abc’);

Компонента Memo может реагировать на нажатие клавиши <Enter> при значении свойства WantReturns типа Boolean, равное True. Это значение установлено по умолчанию. Число строк в M emo хранится в свойстве Count (свойство только для чтения).

Компонента RichEdit работает с текстом в обогащенном формате RTF. При желании изменить атрибуты вновь вводимого фрагмента текста можно задать свойство SelAttributes. Это свойство типа TTextAttributes, которое в свою очередь имеет подсвойства: Color (цвет), Name (имя шрифта), Size (размер), Style (стиль) и др. В компоненте имеется также свойство DefAttributes, содержащее атрибуты по умолчанию. Эти атрибуты действуют до того момента, когда изменяются атрибуты в свойстве SelAttributes. Но значения атрибутов в DefAttributes сохраняются и в любой момент могут быть методом Assign присвоены атрибутам свойства SelAttributes, чтобы вернуться к прежнему стилю. За выравнивание, отступы и т.д. в пределах текущего абзаца отвечает свойство Paragraph типа TParaAttributes. Этот тип в свою очередь имеет ряд свойств, которые можно задавать только в процессе выполнения приложения, например в обработчике события при щелчке на какой-нибудь кнопке. Значение подсвойств свойства Paragraph относятся к тому абзацу, в котором находится курсор. Например, каждый из следующих операторов осуществит соответствующее выравнивание текущего абзаца:

RichEdit1. Paragraph. Aligment:=taLeftJustify; // влево

RichEdit1. Paragraph. Aligment:=taСenter; // по центру

RichEdit1. Paragraph. Aligment:=taRightJustify; // вправо

Основное свойство окон Memo и RichEditLines, содержащее текст окна в виде списка строк и имеющее тип TStrings. Начальное значение текста можно установить в процессе проектирования, нажав кнопку с многоточием около свойства Lines в окне Инспектора объектов. Перед вами откроется окно редактирования списка строк. Вы можете редактировать и вводить текст непосредственно в этом окне либо нажать кнопку CodeEditor и работать в обычном окне Редактора кода. В этом случае, завершив работу с текстом, выберите из контекстного меню, всплывающего при щелчке правой кнопки мыши, команду Close Page и ответьте утвердительно на вопрос, хотите ли вы сохранить текст в соответствующем свойстве окна редактирования.

Сохранение текста в файле осуществляется методом SaveToFile, а загрузка текста из файла – LoadFromFile:

Memo1.SaveToFile (‘myfile.txt’);

Memo1.LoadFromFile (‘myfile.txt’);

RichEdit1.SaveToFile (‘myfile1.rtf’);

RichEdit1.LoadFromFile (‘myfile1.rtf’);

Справочные данные

Действия над строками и символами реализуются с помощью большого набора стандартных процедур и функций. В таблицах 9.2 –9.6 приведены описания процедур и функций (в квадратных скобках указываются необязательные параметры).

Таблица 9.2

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

Процедура или функция Пояснение
function Concat (SI [, S2,..., SN]: String): String; Возвращает строку, представляющую собой сцепление строк-параметров S1, S2,..., SN
function Copy (St: String; index, Count: integer): String; Копирует из строки St Count символов, начиная с символа с номером Index
procedure Delete (St: String; index, Count: Integer); Удаляет Count символов из строки St, начиная с символа с номером Index
procedure Insert (SubSt: String; St, index: Integer); Вставляет подстроку SubSt в строку St, начиная с символа с номером Index
function Length (St: String): integer; Возвращает текущую длину строки St
function Pos (SubSt, St: String): integer; Отыскивает в строке St первое вхождение подстроки SubSt и возвращает номер позиции, с которой она начинается. Если подстрока не найдена, возвращается ноль
procedure SetLength (St: String; NewLength: Integer); Устанавливает новую (меньшую) длину NewLengh строки St. Если NewLengh больше текущей длины строки, обращение к SetLength игнорируется

Таблица 9.3

Подпрограммы преобразования строк в другие типы

Процедура или функция Пояснение
function StrToCurr (St: String): Currency; Преобразует символы строки St в число типа Currency. Строка не должна содержать ведущих или ведомых пробелов
function StrToDate (St: String): 'ГdateTime; Преобразует символы строки St в дату. Строка должна содержать два или три числа, разделенных правильным для Windows разделителем даты (в русифицированной версии таким разделителем является <.>). Первое число – правильный день, второе – правильный месяц. Если указано третье число, оно должно задавать год в формате XX или ХХХХ. Если символы года отсутствуют, дата дополняется текущим годом. Например, DateToStr(StrToDate ('28.06')) даст строку '28.06. 09'
function StrTоDateTime (St: String): TdateTime; Преобразует символы строки St в дату и время. Строка должна содержать правильную дату (см. StrToDate) и правильное время (см. StrToTime), разделенные пробелом, например: StrToDateTime('28.06 18:23')
function StrToFloat (St: String): Extended; Преобразует символы строки St в вещественное число. Строка не должна содержать ведущих или ведомых пробелов
function StrToInt (St: String): Integer; Преобразует символы строки St в целое число. Строка не должна содержать ведущих или ведомых пробелов
function StrTolntDef (St: String; Default: Integer): Integer; Преобразует символы строки St в целое число. Если строка не содержит правильного представ­ления целого числа, возвращается значение Default
functiton StrTOIntRange (St: String; Min, Max: LongInt): LongInt; Преобразует символы строки St в целое число и возбуждает исключение ERangeError, если число выходит из заданного диапазона Min...Max

Окончание табл. 9.3

Процедура или функция Пояснение
function StrToTime (St: String): TdateTime; Преобразует символы строки St во время. Строка должна содержать два или три числа, разделенных правильным для Windows, разделителем времени (для русифицированной версии таким разделителем является < >). Числа задают часы, минуты и, возможно, секунды. За последним числом через пробел могут следовать символы <am> или <pm>, указывающие на 12-часовой формат времени
Procedure Val (St: String; var X;Code: lnteger); Преобразует строку символов во внутреннее представление целой или вещественной переменной X, которое определяется типом этой переменной. Параметр Code содержит ноль, если преобразование прошло успешно, и тогда в Х помещается результат преобразования, в противном случае он содержит номер позиции в строке St, где обнаружен ошибочный символ, и в этом случае содержимое X не меняется. В строке St могут быть ведущие и/или ведомые пробелы

Таблица 9.4

Подпрограммы обратного преобразования

Процедуры и функции Пояснения
function DateToStr (Value: TDateTime): String; Преобразует дату из параметра Value в строку символов
function DateTimeToStr (Value: TdateTime): String; Преобразует дату и время из параметра Value в строку символов
procedure DateTimeToString (var St: String; Format: String; Value: TdataTime);. Преобразует дату и время из параметра Value в строку St в соответствии со спецификаторами параметра Format
function FormatDateTime (Format: String; Value: TDateTime): String; Преобразует дату и время из параметра Value в строку символов в соответствий со спецификаторами параметра Format
function FloatToStr (Value: Extended): String; Преобразует вещественное значение Value в строку символов

Окончание табл. 9.4

Процедуры и функции Пояснения
function FloatToStrF (Value: Extended; Format: TFIoatFormat; Precision, Digits: Integer): String; Преобразует вещественное значение Value в строку символов с учетом формата Format и параметров Precision и Digits
function FormatFloat (Format: String; Value: Extended): String; Преобразует вещественное значение Value в строку символов с учетом спецификаторов формата Format (см. пояснения ниже)
function IntToStr (Value: In­teger): String; Преобразует целое значение Value в строку символов.
function TimeToStr (Value: TdateTime): String; Преобразует время из параметра Value в строку символов
procedure Str(X [:Width [:Decimals]]; var St: String); Преобразует число X любого вещественного или целого типа в строку символов St; параметры Width и Decimals, если они присутствуют, задают формат преобразования: Width определяет общую ширину поля, выделенного под соответствующее символьное представление вещественного или целого числа X, a Decimals − количество символов в дробной части (этот параметр имеет смысл только в том случае, когда X − вещественное число)

В примерах таблицы 9.5 показаны строки для времени 19 ч 45 мин и даты 8 июня 2009 г.

Таблица 9.5

Спецификаторы формата даты/времени

Спецификаторы Пояснения
c Отображает сначала дату в формате дд.мм.гг, затем через пробел время в формате чч.мм.сс: 08.06.09 19:45
d Отображает день без ведущего нуля: 8
dd Отображает день с ведущим нулем: 08
dddd Отображает день недели: воскресенье (для нерусифицированной версии-Windows-sunday)
ddddd Отображает дату в формате дд.мм.гг: 08.06.09
dddddd Отображает дату в формате день Месяц год: 8 Июнь 2009 (для нерусифицированной версии Windows – 8 June 2009)

Окончание табл. 9.5

Спецификаторы Пояснения
m Отображает число месяца без ведущего нуля: 6
mm Отображает число месяца с ведущим нулем: 06
mmm Отображает сокращенное название месяца: июнь
mmmm Отображает полное название месяца: Июнь
у или yy Отображает две последние цифры года: 09
yyy или yyyy Отображает все цифры года: 2009
h Отображает час без ведущего нуля: 19
hh Отображает час с ведущим нулем: 19
n Отображает минуты без ведущего нуля: 45
nn Отображает минуты с ведущим нулем: 45
s Отображает секунды без ведущего нуля: 0
ss Отображает секунды с ведущим нулем: 00
t Отображает время в формате чч:мм: 19: 45
tt Отображает время в формате чч:мм:сс: 19: 45: 00
am/pm Отображает время в 12-часовом формате (am – до полудня, рm – после полудня). Для спецификаторов hh: mm am/pm получим 07: 45 pm
ampm ' Отображает время в 12-часовом формате, но без указания до/после полудня. Для спецификаторов hh:mm ampm получим 07: 45
a/p Отображает время в 12-часовом формате а – до полудня, p – после полудня). Для спецификаторов hh:mm a/p получим 07: 45 p.
/ Отображает используемый в Windows разделитель даты. Для спецификаторов d/m/y получим 8.6.09
: Отображает используемый в Windows разделитель времени. Для спецификаторов h:n:m получим 19:45:0

Любые другие символы, указанные в строке Format, а также заключенные в апострофы или кавычки специальные символы-спецификаторы помещаются в выходную строку без преобразования, поэтому спецификаторы ‘h час n мин' дадут строку 19 час 45 мин, а 'h час «n мин» − 19 час n мин.

Таблица 9.6

Подпрограммы для работы с нуль-терминальными строками

Процедура или функция Пояснение
function CharToOem (Str, OemStr: Pchаr): Bool; Преобразует символы строки Str из кодировки ANSI в кодировку DOS и помещает результат в OemStr. Всегда возвращает True
function ChàrToOemBuff (Str, OemStr: PChàr; MаxLen: LongInt): Bool; Преобразует не более MaxLen символов cтроки Str из кодировки ANSI в кодировку DOS и помещает результат в OemStr. Всегда возвращает True
function StrCаt(Dest, Source: PChаr): PChаr; Копирует строку Source в конец строки Dest и возвращает указатель на строку Dest
function StrComp (Strl, Str2: PChаr): Integer; Побайтно сравнивает строку Str1 со строкой Str2 и возвращает следующий результат: =0 для Str1=Str2; > 0 для Str1 > Str2; < 0 для Str1 < Str2  
function StrCopy(Dest, Source: PChаr): PChаr; Копирует строку Source в строку Dest и возвращает указатель на Dest. StrCopy не проверяет реальный размер памяти, связанный с Dest (он должен быть не меньше StrLen (Source)+1)  
procedure StrDispose (Str: PChаr); Удаляет строку Str из памяти. Строка должна быть предварительно помещена в память функцией StrNew. Если Str=NlL, процедура ничего не делает  
function StrECopy(Dest, Source: Pchаr): PChàr; Объединяет строки. Эта функция работает в точности как StrCat, но возвращает указатель на конец сцеплен­ных строк, т.е. на терминальный ноль  
function StrEnd (Str: PChàr): Pchàr;. Функция возвращает указатель на терминальный ноль строки Str  
function StrIComp(Strl, Str2: PChаr): Pchаr; Функция сравнивает строки, игнорируя возможную раз­ницу в высоте букв. Возвращает такой же результат, как и StrComp. Функция правильно работает лишь с латиницей. Для кириллицы ее нужно модифицировать  
function StrLCаt(Dest, Source: PChàr; MaxLen: Word): PChàr; Копирует символы строки Source в конец строки Dest до тех пор, пока не будут скопированы все символы или когда длина сцепленной строки Dest не достигнет MaxLen. Возвращает указатель на сцепленную строку. В отличие от StrCopy эта функция блокирует возможное переполнение области памяти, связанной с Dest. Обычно в качестве MaxLen используется выражение SizeOf(Dest)-l  
       

Продолжение табл. 9.6

Процедура или функция Пояснение
function StrLComp(Dest, Source: Pchаr; MaxLen: Word): Pchаr; В отличие от StrComp сравнивает не более MaxLen сим­волов строк. Возвращаемый результат такой же, как и у StrComp
function StrLCopy (Dest, Source: PChàr; MàxLen: Word): PChаr; Копирует символы из строки Source в строку Dest до тех пор, пока не будет скопирована вся строка или пока не будет скопировано МaxLеn символов. В отличие от StrCopy блокирует возможность переполнения области памяти, связанной с Dest. В качестве MaxLen обычно используется выражение SizeOf(Dest)-l
function StrLen(Str: PChаr): Cardinal; Возвращает длину строки
function StrLIComp(Strl, Str2: PChаr; MаxLen: Word): PChаr; Сравнивает не более MaxLen символов строк, проверяя точное соответствие высоты букв. Возвращаемый результат см. StrСomр. Функция правильно работает только с латиницей.
function StrLower(Str: PChàr): PChаr; Преобразует заглавные буквы строки Str к строчным и возвращает указатель на результат. Функция правильно работает только с латиницей
function StrMove(Dest, Source: PChаr; Count: Word): Pchàr; Копирует точно Count символов строки Source в строку Dest и возвращает указатель на результат. Функция игнорирует действительные размеры строк и может выйти за их пределы
function StrNew(Str: PChаr): Pchar; Помещает строку в память
function StrPas(Str: PChàr): String; Преобразует нуль-терминальную строку в строку String
function StrPCopy(Str: PChаr; S: String); PChar; Преобразует строку String в нуль-терминальную строку. Возвращает указатель на Str
function StrPos(Strl, Str2: PChàr): PChàr; Ищет подстроку Str2 в строке Str1 и возвращает указатель на первое вхождение Str2 или NIL, если подстрока не найдена
function StrRScan(Str: PChar; Ch: Chàr): PChàr;. Ищет символ Ch в строке Str и возвращает указатель на последний обнаруженный символ Ch или NIL, если символ не найден
function StrScan(Str: PChar; Ch: Char): Pchar; Ищет символ Ch в строке Str и возвращает указатель на первый обнаруженный символ Ch или NIL, если символ не найден

Окончание табл. 9.6

Процедура или функция Пояснение
function StrUpper (Str: PChar): PChаr; Преобразует строчные буквы строки Str к заглавным и возвращает указатель на результат. Функция правильно работает только с латиницей
function OemToChаr (OEMStr, Str: Pchar): Bool; Преобразует символы из кодировки DOS в кодировку ANSI и возвращает Truе
function OemToCharBuff (OEMStr, Str: PChаr; MaxLen: LongInt): Bool; Преобразует не более MaxLen символов строки OemStr из кодировки DOS в кодировку ANSI и помещает результат в Str. Всегда возвращает True

Пример программирования с использованием строк

Задание. Дана последовательность из 50 литер (строчных латинских букв, цифр). Напечатать этот текст, заменяя все цифры «9» – русской «x», а остальные входящие в него цифры – звездочкой.

Значения используемых компонент для программного интерфейса показаны ниже (табл. 9.7).

Таблица 9.7

Используемые компоненты

Компонента Свойство Значение
Form1: TForm Name Caption Form1 Работа со строками
Button1: TButton Name Caption Button1 Преобразовать
Button2: TButton Name Caption Button1 Выход
Label1: TLabel Name Caption Label1 Введите строку
Edit1: TEdit Name Text Edit1 отсутствует
Edit2: TEdit Name Text Edit2 отсутствует

1. Разработка алгоритма (рис. 9.1):

а) исходные данные: str – строка символов;

б) промежуточные данные: i – переменная целого типа, счетчик цикла;

в) результат: str – преобразованная строка.

Рис. 9.1. Схема алгоритма решения задачи

2. Текст программы:

Unit Unit1;

Interface

Uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls

type

TForm1=class (TForm)

Label1: TLabel; //комментарий к полю ввода

Edit1: TEdit; //поле ввода строки

Label2: TLabel; //комментарий к полю вывода

Edit2: TEdit; //поле вывода измененной строки

Button1: TButton; //кнопка «выполнить»

Button2: TButton; //кнопка «выход»

Procedure Button2Click(Sender: TObject); //процедура, вызываемая

при щелчке на Button2

Procedure Button1Click(Sender: TObject); // процедура, вызываемая

при щелчке на Button1

private

{Private declarations}

public

{Public declarations };

end;

var Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);

begin

Close

end;

procedure TForm1.Button1Click(Sender: TObject); { процедура,

заменяющая цифры '9' буквой 'х', а остальные символы – на '*'}

var str: string;

i: integer;

begin

str:= Edit1.Text;

while pos (‘9’, str) > 0 do

str[pos(‘9’, str)]:= ’х’;

for i=1 to Length(str) do

if str[i] in [‘0’..’8’] then

str[i]:= ’*’;

Edit2.Text:= str;

end;

end.

Контрольные вопросы к главе 9

1. Какие виды строк существуют в Delphi?

2. Опишите короткую строку, состоящую из 10 символов.

3. Можно ли работать со строкой как с одномерным символьным массивом?

4. Каким образом можно преобразовать строковый тип в вещественный?

5. Каким образом можно преобразовать числовой тип в строковый?

6. С помощью какой функции можно найти подстроку в строке?

7. С помощью какой функции можно найти текущую длину строки?

8. Как можно передать короткие строки в качестве параметров подпрограмм?

9. Как можно передать длинные строки в качестве параметров подпрограмм?

10. Как можно использовать широкие строки в качестве параметров подпрограмм?

11. Как можно передать нуль-терминальные строки в качестве параметров подпрограмм?

12. Чем отличаются кодировки длинных и широких строк?

13. При помощи каких компонент можно ввести строку?

14. При помощи каких компонент можно вывести на форму строку?

15. Какие основные свойства у компонента Memo?

16. Какие основные свойства у компонента RichEdit?

17. Найдите ошибки в описаниях:

а) Const

adres:=’ул. Дейнеки,5’;

max=string;

б) Type

tf=string[125];

var

fstr.ft;

st2, st1,string[50];

nazv: string[280];






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных