{ **** UBPFD *********** by delphibase.endimus.com ****
>> Конвертация Variant -> Integer
Конвертирует, если это возможно Variant в число. Если конвертация неудается,
то возвращается значение по умолчанию.
Зависимости: Variants, SysUtils
Автор: Григорий Ситнин, gregor@gregor.ru, Москва
Copyright: Григорий Ситнин, 2003
Дата: 8 июля 2003 г.
***************************************************** }function VarToInt(var AVariant: variant; DefaultValue: integer = 0): integer;
begin//*** Если NULL или не числовое, то вернем значение по умолчанию
Result := DefaultValue;
if VarIsNull(AVariant) then
Result := 0
else{//*** Если числовое, то вернем значение}if VarIsOrdinal(AVariant) then
Result := StrToInt(VarToStr(AVariant));
end;
Перевод контента на русский язык:
Функция Delphi, называемая VarToInt, конвертирует значение типа Variant в целочисленное значение. Функция принимает два параметра: AVariant, которое является значением Variant, которое нужно конвертировать, и DefaultValue, которое является значением по умолчанию, которое возвращается, если конвертация не удалась.
Вот шаг за шагом, что код делает:
Если AVariant равно null или не числовое, функция возвращает DefaultValue.
Если AVariant числовое, функция проверяет, является ли оно порядковым типом (например, целочисленное, длинное целочисленное и т.д.). Если это так, функция конвертирует значение в строку с помощью VarToStr, а затем конвертирует эту строку в целочисленное значение с помощью StrToInt. Результат хранится в переменной Result.
Функция возвращает значение Result.
Код хорошо структурирован и легко понятен. Однако есть несколько вещей, которые можно улучшить:
Вместо проверки, является ли AVariant null или не числовым отдельно, вы можете использовать функции VarIsEmpty и VarIsNumeric, чтобы упростить условие.
Вы можете рассмотреть добавление более robust ошибок, такие как поднятие исключения, если конвертация не удалась. Это позволит вызывающему коду обрабатывать ошибку в более robust way.
Вот обновленная версия функции с этими предложениями включенными:
Надеюсь, это поможет! Пожалуйста, если у вас есть вопросы.
Конвертация функции VarToInt из Delphi преобразует Variant в Integer, возвращая значение по умолчанию, если конвертация не удается.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS