
Модуль SysUtils в Паскале предоставляет набор функций и процедур для работы с датами, временем, строками, файлами и типами данных. Подключение модуля через директиву uses позволяет использовать готовые инструменты без написания собственного кода для базовых операций.
С помощью SysUtils можно конвертировать строки в числа и наоборот, форматировать даты в нужный формат, получать текущее системное время и управлять путями к файлам. Это сокращает время разработки и снижает вероятность ошибок при обработке данных.
Назначение модуля SysUtils в Паскале

Модуль SysUtils предоставляет набор функций и процедур для работы с системными ресурсами, строками, файлами и датой-временем. Он позволяет управлять исключениями, выполнять конвертацию типов, получать информацию о текущей операционной системе и системных путях.
Функции модуля включают преобразование чисел в строки и обратно (StrToInt, IntToStr), работу с форматированными датами и временем (FormatDateTime, Now), а также управление файлами и каталогами (FileExists, DeleteFile, ForceDirectories). SysUtils содержит процедуры для обработки ошибок через тип Exception, что упрощает отлов и диагностику исключительных ситуаций.
Модуль обеспечивает доступ к системным путям и конфигурации через переменные, такие как ParamStr и ParamCount, что позволяет создавать гибкие консольные приложения. Также он включает утилиты для работы с кодировками, хэшированием и уникальными идентификаторами (UTF8Encode, MD5String, CreateGUID).
Использование SysUtils рекомендуется для повышения надежности программ, сокращения объема ручного кода и обеспечения совместимости с различными версиями Windows и Linux. Подключение модуля через директиву uses SysUtils; делает доступными все функции без дополнительной реализации.
Подключение SysUtils через директиву Uses

Для использования функций и процедур модуля SysUtils в Паскале применяется директива uses. Она помещается в раздел интерфейса или реализации программы перед основной частью кода. Пример подключения:
uses SysUtils;
После подключения становятся доступны процедуры для работы с датой и временем (Now, Date, FormatDateTime), преобразования типов (StrToInt, IntToStr, FloatToStr), работы с файлами и каталогами (FileExists, DeleteFile, ForceDirectories), а также средства обработки исключений через Exception.
Рекомендуется подключать SysUtils в начале файла, чтобы функции модуля были видны всем частям программы. Если модуль подключается только в реализации, его функции недоступны в интерфейсе. При большом количестве модулей допускается разделение списка через запятую: uses SysUtils, Classes, Math;.
Использование директивы uses с SysUtils повышает читаемость кода, упрощает обработку системных ошибок и сокращает количество ручной работы при выполнении стандартных операций.
Работа с датами и временем с помощью SysUtils
Модуль SysUtils предоставляет инструменты для получения, форматирования и вычислений с датой и временем. Основные функции включают:
- Now – возвращает текущую дату и время в формате TDateTime.
- Date – возвращает только текущую дату без времени.
- Time – возвращает только текущее время.
- FormatDateTime – позволяет преобразовать TDateTime в строку с заданным форматом, например:
FormatDateTime('dd.mm.yyyy hh:nn:ss', Now). - IncDay, IncMonth, IncYear, IncHour, IncMinute, IncSecond – функции для добавления или вычитания единиц времени.
- DayOfWeek – возвращает номер дня недели для указанной даты (1 = воскресенье, 7 = суббота).
- EncodeDate, EncodeTime – создают значение TDateTime из отдельных компонентов даты и времени.
- DecodeDate, DecodeTime – извлекают компоненты даты и времени из значения TDateTime.
Рекомендации по использованию:
- Для вычислений с датами использовать функции IncDay, IncMonth, IncYear вместо ручного сложения, чтобы избежать ошибок при переходе через месяцы и годы.
- При работе с временем учитывать функции EncodeTime и DecodeTime для точного управления часами, минутами и секундами.
- Использовать DayOfWeek для планирования событий по дням недели и вычисления рабочих дней.
Использование функций конвертации типов данных

Модуль SysUtils содержит функции для преобразования данных между строковыми и числовыми типами, а также для работы с другими форматами. Основные функции:
- StrToInt – преобразует строку в целое число. Пример:
i := StrToInt('123');. - StrToIntDef – возвращает число из строки или значение по умолчанию при ошибке:
i := StrToIntDef('abc', 0);. - IntToStr – преобразует целое число в строку:
s := IntToStr(456);. - StrToFloat – преобразует строку в число с плавающей запятой. Пример:
f := StrToFloat('12.34');. - FloatToStr – преобразует число с плавающей запятой в строку:
s := FloatToStr(56.78);. - TryStrToInt и TryStrToFloat – безопасные функции, возвращающие true при успешной конверсии и false при ошибке, без генерации исключений.
Рекомендации по применению:
- Использовать функции с постфиксом Def или TryStrTo… для предотвращения ошибок при некорректном вводе.
- При необходимости форматирования числа перед конверсией применять функции FormatFloat для задания точности и разделителей.
- Для конверсии между логическим значением и строкой использовать BoolToStr и StrToBool.
- Обеспечивать единообразие данных при работе с пользовательским вводом и внешними источниками, всегда проверяя корректность преобразования.
Форматирование строк и чисел через SysUtils

Модуль SysUtils предоставляет функции для преобразования и форматирования чисел и строк, позволяя задавать точность, ширину поля и локальные настройки.
- Format – универсальная функция для вставки значений в строку с указанным форматом:
s := Format('Значение: %d, текст: %s', [10, 'пример']);. - FormatFloat – форматирует числа с плавающей запятой, задавая количество знаков до и после запятой:
s := FormatFloat('0.00', 12.3456);выдаст ‘12.35’. - FormatCurr – форматирует денежные значения с учетом локали:
s := FormatCurr('#,##0.00', 1234.5);. - QuotedStr – добавляет кавычки вокруг строки и экранирует внутренние апострофы:
s := QuotedStr('O''Reilly');. - UpperCase и LowerCase – преобразуют строку в верхний или нижний регистр:
s := UpperCase('тест');.
Рекомендации по применению:
- Для числовых значений использовать FormatFloat или FormatCurr, чтобы контролировать отображение десятичных знаков и разделителей.
- Для комбинированных строк с числами применять Format вместо конкатенации, чтобы избежать ошибок преобразования типов.
- Для унификации регистра текста применять UpperCase или LowerCase перед сравнением строк.
Обработка ошибок и исключений с помощью модулей

Модуль SysUtils предоставляет средства для генерации и перехвата исключений, что позволяет контролировать выполнение программы при возникновении ошибок.
Основные типы исключений:
| Тип | Назначение | Пример использования |
|---|---|---|
| Exception | Базовый тип для всех исключений |
raise Exception.Create('Общая ошибка');
|
| EConvertError | Возникает при ошибках конвертации типов |
i := StrToInt('abc');
|
| EFOpenError | Ошибка открытия файла |
AssignFile(f, 'data.txt'); Reset(f); |
| EDirectoryNotFound | Указанный каталог не найден |
ForceDirectories('C:\nonexistent\folder');
|
Рекомендации по использованию:
- Использовать конструкцию try..except для перехвата ошибок и выполнения альтернативных действий:
- Для освобождения ресурсов применять try..finally, чтобы гарантировать выполнение кода независимо от ошибок:
- Создавать собственные исключения, наследуя Exception, для специфических ошибок приложения.
try
i := StrToInt('abc');
except
on E: EConvertError do
Writeln('Ошибка преобразования: ', E.Message);
end;
AssignFile(f, 'data.txt'); try Reset(f); finally CloseFile(f); end;
Работа с файлами и путями через SysUtils

Модуль SysUtils предоставляет функции для проверки, создания, удаления и получения информации о файлах и каталогах.
- FileExists – проверяет существование файла:
if FileExists('data.txt') then .... - DirectoryExists – проверяет наличие каталога:
if DirectoryExists('C:\Folder') then .... - DeleteFile – удаляет указанный файл:
DeleteFile('old.txt');. - RenameFile – переименовывает файл:
RenameFile('old.txt', 'new.txt');. - ForceDirectories – создает полный путь каталогов, включая все отсутствующие папки:
ForceDirectories('C:\New\Path');. - ExtractFilePath, ExtractFileName, ExtractFileExt – извлекают путь, имя и расширение файла соответственно:
p := ExtractFilePath('C:\Folder\file.txt');. - ExpandFileName – преобразует относительный путь в абсолютный:
fullPath := ExpandFileName('..\data.txt');.
Рекомендации по использованию:
- Перед открытием файла проверять существование с помощью FileExists и наличие каталога через DirectoryExists.
- Использовать ForceDirectories для создания вложенных каталогов, чтобы избежать ошибок при сохранении файлов.
- Для работы с путями применять функции ExtractFilePath, ExtractFileName и ExpandFileName, чтобы корректно обрабатывать относительные и абсолютные пути.
- Удаление и переименование файлов выполнять только после проверки существования, чтобы избежать исключений.
Практические примеры использования функций модуля

Модуль SysUtils предоставляет функции для преобразования данных, работы с датой и временем, файловой системой и обработкой ошибок. Примеры использования:
Конвертация типов:
var i: Integer; s: String; begin s := '123'; i := StrToIntDef(s, 0); // безопасное преобразование строки в число s := IntToStr(i); // обратное преобразование end;
Форматирование даты и времени:
var
currentDate: TDateTime;
formatted: String;
begin
currentDate := Now;
formatted := FormatDateTime('dd.mm.yyyy hh:nn:ss', currentDate);
Writeln('Текущее время: ', formatted);
end;
Работа с файлами и каталогами:
begin
if not DirectoryExists('C:\Data') then
ForceDirectories('C:\Data'); // создаем путь при необходимости
if FileExists('C:\Data\file.txt') then
DeleteFile('C:\Data\file.txt'); // удаляем файл
end;
Обработка исключений:
begin
try
i := StrToInt('abc'); // вызовет EConvertError
except
on E: EConvertError do
Writeln('Ошибка преобразования: ', E.Message);
end;
end;
Вопрос-ответ:
Что делает директива uses SysUtils в Паскале?
Директива uses SysUtils подключает модуль SysUtils к программе, делая доступными его функции и процедуры для работы с датой и временем, строками, файлами, путями и исключениями. После подключения можно использовать, например, Now для текущей даты и времени, StrToInt для преобразования строк в числа, FileExists для проверки наличия файлов.
Какие функции для работы с датой и временем доступны через SysUtils?
Через SysUtils доступны функции Now, Date и Time для получения текущей даты и времени. FormatDateTime позволяет форматировать дату и время в строку. Функции IncDay, IncMonth, IncYear помогают добавлять или вычитать единицы времени. DayOfWeek возвращает номер дня недели, а EncodeDate и DecodeDate работают с компонентами даты.
Как безопасно преобразовать строку в число с помощью SysUtils?
Для безопасного преобразования строки в число можно использовать StrToIntDef или TryStrToInt. StrToIntDef возвращает значение по умолчанию при некорректной строке, а TryStrToInt возвращает логический результат успеха преобразования, предотвращая генерацию исключений.
Какие функции SysUtils помогают работать с файлами и каталогами?
Для проверки существования файлов и папок используют FileExists и DirectoryExists. Для удаления и переименования файлов есть DeleteFile и RenameFile. ForceDirectories создаёт полные пути, включая отсутствующие каталоги. Для работы с путями применяются функции ExtractFilePath, ExtractFileName и ExpandFileName.
Как использовать обработку исключений с SysUtils в Паскале?
Для перехвата ошибок применяют конструкцию try..except. Например, при преобразовании строки в число можно отловить EConvertError и вывести сообщение об ошибке. Для освобождения ресурсов применяют try..finally, чтобы код в блоке finally выполнялся независимо от ошибок. Также можно создавать собственные исключения, наследуя базовый тип Exception.
