Перетворення типів даних

При обробці даних різного типу макроси часто перетвоюють їх, наприклад, оперують числами як фрагментами тексту, або навпаки, введений текст (послідовність цифр) перетворюють у число заданого типу. OOo Basic має механізм для автоматичного перетворення даних до потрібного типу, так зване неявне перетворення типів, хоча надає можливіть програмісту самому контролювати типи даних, що опрацьовує макрос, за допомогою спеціальних функцій перетворення типів даних.

Наступна пара функцій, що перетвоюють число в текстовий рядок і навпаки використовується для вводу-виводу числових даних:
Val(рядок) – перетворює цифри, що містяться в текстовому рядку в числове значення типу Double. Якщо рядок містить не тільки цифри, то перетворюється лише початок рядка з цифрами, а якщо рядок не починається з цифри, то результат функції дорінює 0;
Str(вираз) – створює значення типу String, яке є рядковим представленням числового значення виразу.

Більш потужним інструментом, ніж функція Str() є функція Format(), яка дозволяє сформувати з числа текстовий рядок за вказаним зразком. Синтаксис:
Format(число [, формат]) — пертворює задане число у форматований текстовий рядок (String) відповідно до заданого формату. Для побудови коду формату використовують наступні символи:

  • 0 – позначає окрему цифру числа, якщо число не має цифри у вказаній позиції, то відображається нуль, десятові розряди числа після коми округляются до кількості нулів в коді формату;
  • # – цей символ працює як 0, за винятком того, що нулі зліва чи справа відображатися не будуть;
  • . – розділювач цілої і дробової частини десяткового дробу;
  • % – число домножується на 100;
  • E- E+ e- e+ – позначають вивід числа в експоненціальній формі.

Знаки плюс (+), мінус (-), доллар ($), пробіл та дужки у коді формату, відображаються безпосередньо як символи, щоб покази в результаті форматування інші символи потрібно поставити перед ними знак “\” або взяти їх в подвійні лапки. Зокрема, це стосується символів форматування дати і часу(a, c, d, h, m, n, p, q, s, t, w, y, /, : ), символів форматування чисел(#, 0, %, E, e, ., ,) та символів форматування текстових рядків (@, &, <, >, !).

Група функцій, імена яких починаються з букви «С» і містять назву одного зі стандартних типів (або її скорочення) дозволяють перетворювати задане значення у значення вказаного типу (якщо це можливо):

Функція Тип, в який перетворюється вираз
СBool(вираз) Boolean
СByte(вираз) Byte
СCur(вираз) Currency
СDate(вираз) Date
СDbl(вираз) Double
СDec(вираз) Decimal
СInt(вираз) Integer
СLng(вираз) Long
СSng(вираз) Single
СVar(вираз) Variant
СStr(вираз) String

Окрім цього, у OOo Basic є функції, що дозволяють перевірити зі значення м якого саме типу працюватиме макрос:

  • IsArray(змінна) – перевіряє чи є змінна масивом;
  • IsDate(змінна) –перевіряє чи є змінна датою;
  • IsEmpty(змінна) – перевіряє чи була змінна описана інструкцією Dim;
  • IsError(змінна) – перевіряє чи є змінна кодом помилки;
  • IsNull(змінна) – перевіряє чи є змінна порожнім значенням Null;
  • IsNumeric(змінна) – перевіряє чи є змінна числовим значенням;
  • IsObject(змінна) – перевіряє чи є змінна об’єктом.