В языке Паскаль имеются два основных типа, предназначенных для работы с текстовыми данными: char и string. Данные типа char содержат один символ, тогда как данные типа string могут содержать набор символов, интерпретируемый как символьная (текстовая) строка. В Delphi Pascal и PascalABC.NET символьные строки могут содержать практически неограниченное кол-во символов (более 2 миллиардов).
Для определения символа по его коду и кода по его символу в Паскале предусмотрены стандартные функции Chr и Ord.
В языке Паскаль символы можно сравнивать с помощью любых операций отношения (=, <>, <, >, <=, >=), при этом меньшим считается символ, имеющий меньший код. Например:
'0'<'1'<...<'9'<...<'A'<'B'<'C'<...'Z'<...<'a'<'b'<'c'<...<'z'<...<'А'<'Б'<'В'<...<'Я'<'а'<'б'<...<'я' Строковые данные (данные типа string) в Паскале могут рассматриваться как массива символов; при этом первый символ строки имеет индекс 1. Однако строковая переменная, в отличие от "обычного" массива, может изменять свой размер в зависимости от длины той строки, которая в данный момент в ней содержится. Для определения текущей длины строки предусмотрена функция Length. Таким образом, если строка S является непустой, то для доступа к её символам можно использовать индексы от 1 до Length(S): S[1], ..., S[Length(S)]. Попытка обратиться к символу с индексом, не лежащим в указанном диапазоне, приведёт к ошибке времени выполнения. В частности, это случится при использовании выражения S[Length(S)] для пустой строки S (поскольку в этом случае длина строки равна нулю).
Для строк определена единственная операция "+", называемая операцией сцепления (или операцией конкатенации). В качестве одного и даже обоих операндов можно использовать символьные данные (типа char), однако результат всегда будет иметь тип string.
Символьные выражения можно присваивать строковой переменной (напрмер, S:=C, где S имеет тип string, а C - тип char); при этом символ автоматически преобразуется в односимвольную строку. Обратное присваивание (C:=S) запрещено.
Процедура Val предназначена для преобразования строки в число. она имеет три параметра. В первом задаётся преобращуемое строковое выражение, во втором указывается числовая переменная, в которую будет записан результат преобразования. Тип второго параметра определяет, как должно интрепретироваться содержимое преобразуемой строки: если второй параметр имеет целый тип, то делается попытка преобразования строки к целому чмслу, а если параметр имеет вещественный тип то к вещественному.
Поскольку не всякую строку можно преобразовать в число, в процедуре Val предусмотрен дополнительный входной параметр целого типа, позволяющий проверить успешность подобного преобразования: если преобразование выполнено успешно, то этот параметр равен нулю.
Заметим, что процедура Val правильно распознаёт не только вещественные числа в формате с фиксированной точкой (например, '1.2345'), но также и числа в формате с плавающей точкой (например, '1.2345e+02). Запятую в качестве десятичного разделителя использовать нельзя.
Обратная функция преобразования, которая может быть выполнена всегда - Str.