Главная » Free Pascal » Короткие строки Free Pascal

0

Для объявления переменных типа "короткая строка" используются служебные слова String с необязательным указанием максимальной длины или ShortString. Объявление глобальных переменных может сопровождаться их инициализацией, т. е. присвоением начального значения:

type

s20 = String [20];

var

s1 : String [10] = ‘Hello, world!';

s2 : s20 = ‘Free Pascal‘;

s3 : ShortString = ‘Мама, я хочу домой';

В строковых значениях разрешено употреблять русские буквы, и с их выводом в системе Free Pascal никаких проблем не возникает (в отличие от консольных при- ложений Borland C++Builder и Delphi). Дело в том, что режим набора текста про- граммы в среде FP IDE выполняется в кодовой странице 866. И с этой же кодиров- кой символов работает консольное приложение (листинг 5.1).

   Листинг 5 .1 .  Программа  hello_r                                              

program hello_r; begin

writeln(‘Hello’); writeln(‘Привет’); readln;

end.

Результат работы программы hello_r приведен на рис. 5.1.

Рис. 5.1. Вывод текстов в программах Free Pascal

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

   Листинг 5 .2 .  Программа  input_str                                            

program input_str; var

s:ShortString; begin

write(‘s=’); read(s); writeln(‘s = ‘,s); readln;

readln; end.

Результат работы программы input_str приведен на рис. 5.2.

Рис. 5.2. Ввод значения короткой строки

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

   Листинг 5 .3 .  Программа  input_str2                                           

program input_str2; var

s1,s2:ShortString; begin

write(‘s1,s2 = ‘);

read(s1,s2);       {Так делать нельзя}

writeln(‘s1=’,s1);

writeln(‘s2=’,s2); readln;

readln; end.

Все, что набрано до нажатия клавиши <Enter>, попало в переменную s1 (рис. 5.3).

Рис. 5.3. Неудачная попытка ввода двух строковых значений

С помощью функций Length и SizeOf можно определить длину текущего зна- чения короткой строки и объем памяти, выделенный компилятором для хранения соответствующей переменной (листинг 5.4).

   Листинг 5.4. Программа  str4                                                 

program str4; var

s:String[10] = ‘Hello'; begin

writeln(‘длина(s) : ‘,Length(s)); writeln(‘выделено памяти под s : ‘,SizeOf(s)); readln;

end.

Значения этих функций для переменной s приведены на рис. 5.4.

Рис. 5.4. Применение функций Length и SizeOf

Источник: Кетков, Ю. Л., Свободное программное обеспечение. FREE PASCAL для студентов и школьников, Ю. Л. Кетков, А. Ю. Кетков. — СПб.: БХВ-Петербург, 2011. — 384 с.: ил. + CD-ROM — (ИиИКТ)

По теме:

  • Комментарии