Функція StrToIntDef в Delphi перетворює рядок на значення з типом Integer, враховуючи значення за замовчуванням.
StrUtils unit
function StrToIntDef (const IntegerString : string; Default : Integer) : Integer;
Функція StrToIntDef конвертує рядок з цілим IntegerString, такий як '123', у ціле Integer, повертаючи Default, якщо перетворення не вдалося.
Вона підтримує позитивні та негативні значення, шістнадцяткові числа з префіксом$ або 0x.
Примітка.
Жодні конверсійні помилки не генеруються - погане перетворення просто повертаєDefault (значення за замовчуванням).
Функція StrToIntDef: Приклад перетворення десяткових та шістнадцяткових чисел
var
A, B, C, D, E, F : Int64;
begin
A := 32;
B := StrToIntDef('100',0); // рядок '100' перетворюється на ціле чисельне 100
C := StrToIntDef(' -12',0); // Початкові прогалини ігноруються
D := StrToIntDef('$1E',0); // Шістнадцяткові значення починаються з '$'
E := StrToIntDef('-0x1E',0); // ... або з '0x'
F := A + B + C + D + E; // Складаємо всі ці цілі числа
ShowMessage('A : '+IntToStr(A));
ShowMessage('B : '+IntToStr(B));
ShowMessage('C : '+IntToStr(C));
ShowMessage('D : '+IntToStr(D));
ShowMessage('E : '+IntToStr(E));
ShowMessage('F : '+IntToStr(F));
end;
Результат
A : 32
B : 100
C : -12
D : 30
E : -30
F : 120
Функція StrToIntDef: Захоплення помилок перетворення рядка на ціле значення
var
A : Int64;
begin
// Немає необхідності перехоплювати помилки конверсії
A := StrToIntDef('100 ', 55); // Кінцеві прогалини не підтримуються
ShowMessage('Value = '+IntToStr(A));
A := StrToIntDef('$FG' , 66); // 'G' - неприпустима шістнадцяткова цифра
ShowMessage('Value = '+IntToStr(A));
end;
Результат
Value = 55
Value = 66
Схожі функції та команди
Integer — основний тип цілого числа.
IntToStr — конвертує ціле число в рядок.
StrToInt — перетворює рядок з цілим значенням в Integer.
StrToInt64 — перетворює рядок з цілим значенням в Int64.
StrToInt64Def — перетворює рядок з цілим значенням на Int64, враховуючи значення за промовчанням.
