Зараз обговорюють

"Тобто є ряд завдань, які взагалі без рекурсії не наважуються."  - це як розуміти? Перефразуй, будь ласка. 

виправив, йшлося про те що деякі завдання можна вирішити лише при використанні рекурсії

Спасибі дуже корисна стаття

А ще щось планується подібного найближчим часом?


Дякую за підтримку, радий що Вам сподобалось!

Так маю вже майже дороблений проект по управлінні Audio файлом, на заміну стандартним клавішам управління HTML5, але ще не встиг відтестувати програвання файлів з інтернету, поки лише локально працює

Надіюсь найближчим часом дороблю й закину

Рахунки

webmoneyeur - E385818210641
usd - Z304643423050
uah - U354026817492
rub - R301704373231easypay80002677bitcoin1F5HRGroUtEQW9HBNbeew8iKh5KQ8vJxzw

Зворотній зв'язок

Для покращення роботи сайту надсилайте свої зауваження:
mailЗауваження
mailПропозиція

Статистика

UkrNET - поисково-информационный ресурс

VBA : Перетворення (конвертація) типів даних

Всі константи, змінні, масиви мають результатом значення, яке має один з типів даних, про які йшлося раніше Змінні. Створення, присвоєння, область дії.

Змінні також можуть мати результатом одне зі спеціальних значень Empty (неініціалізована змінна, або отриманий результат типу Variant) або Null (вираз, що містить невірні дані).

Часто в програмуванні виникає необхідність перевести один тип в інший. Наприклад, число в рядок або рядок в дату. Для перетворення (конвертації) типів в VBA є безліч функцій які дозволяють це зробити. Але є один момент, перетворити можливо тільки в той тип, або значення, яке підходить за форматом нового типу. Наприклад, якщо перетворити рядок "356" в цілий тип, то на виході ми отримаємо число, але якщо в цьому рядку буде знаходитися символ, який не належить до числа "356р", то перетворення завершиться помилкою розбіжності типів (Type mismatch).

VBA надає різні функції, ім'я яких виглядає як C (від слова Convert) + ім'я типу даних , для перетворення одного типу даних в інший (див. таблицю).

ФункціяТип який повертаєДія
CBoolBooleanПеретворює значення в булевий тип
CByteByteПеретворює значення в тип Byte
CCurCurrencyПеретворює значення в тип Currency
CDateDateПеретворює значення в Дату і Час
CDblDoubleПеретворює значення в тип Double
CDecDecimalПеретворює значення в підтип Decimal типу Variant
CIntIntegerПеретворює значення в цілий тип
CLngLongПеретворює значення в довге ціле
CSngSingleПеретворює значення в тип Single
CStrStringПеретворює значення в рядок
StrStringРобить майже те ж саме, що і CStr(), але при цьому вставляє пропуск попереду для позитивних чисел.
CVarVariantПеретворює значення в тип Variant
ValDouble"витягує" з суміші цифр і букв тільки числове значення. При цьому ця функція читає дані зліва направо і зупиняється на першому нечисловому значенні (допускається єдине нечислове значення - крапка, яка буде відокремлювати цілу частину від дробової). Дуже зручно, коли з числовими даними прописуються одиниці виміру або валюта.

Для того, щоб перетворити десяткові дані в строкове представлення шістнадцятирічних і вісімкових значень, використовуються функції Hex () і Oct (). Для зворотного перетворення спеціальних функцій не передбачено, але ви можете вказати компілятору VBA, що ці числа записані в шістнадцятковому або вісімковому форматі, записавши їх, наприклад, як &O12 і &HA.

Використання функцій перетворення типів

Працювати з функціями перетворення досить легко. Розглянемо декілька пприкладів:

Перетворення числа в рядок

Dim myStr as String
    myStr = CStr(4568)

Перетворення рядок в число

Dim myInt as Integer
    myInt = CInt("4568")

Перетворення рядка або числа в булевий тип

Dim myBool as Boolean
'Функція поверне значення True
myBool = CBool(1)
myBool = CBool("TRUE")

Перетворення рядка або числа в дату і час

Dim myDate As Date
    myDate = CDate("21/09/16 16:23")
    myDate = CDate("21.09.16")
    myDate = CDate("+42634,6826388889")

Порівння значень

Dim myStr1 As String, myStr2 As String
    myStr1 = "41"
    myStr2 = "5"
    If myStr1 > myStr2 Then
        Debug.Print myStr1 & " більше " & myStr2
    Else
        Debug.Print myStr1 & " менше " & myStr2
    End If 

Ми розуміємо, що 41 більше за 5, але для компютера при порівнянні стрічкових даних перший символ "4" менше "5" тож і результат ми отримаємо: 41 менше 5

Dim myStr1 As String, myStr2 As String
    myStr1 = "41"
    myStr2 = "5"
    If CInt(myStr1) > CInt(myStr2) Then
        Debug.Print myStr1 & " більше " & myStr2
    Else
        Debug.Print myStr1 & " менше " & myStr2
    End If 

Конвертувавши дані, при перевірці, нарешті отримаємо правильну відповідь: 41 більше 5

Примітка: Функції перетворення можна використовувати безпосередньо в вираженні уникаючи створення зайвих змінних. Наприклад: c = a + CInt("456") + b


Автоматичне перетворення

VBA використовує різні правила для автоматичного перетворення даних в сумісні типи. Як правило, більшість виразів, які використовують різні типи даних, викликають помилку розбіжності типів тільки тоді.

Перетворення чисельних типів

VBA перетворює чисельні типи даних в вираженні в тип найбільшої точності, який потім дає як результат. Наприклад, операндами вираження є числа 10 (Integer) і 20.89 (Single) - результат вираження матиме тип Single.

Але, якщо змінної типу Integer спробувати привласнити чисельне вираження типу Single, то VBA зробить округлення до необхідної точності.

Перетворення рядків і чисел

При перетворенні числа в рядок VBA створює рядок, що містить всі цифри цього числа і десятковий знак (якщо такий є). Наприклад, число 123.849 буде перетворено в рядок "123.849".

Якщо число дуже велике або дуже маленьке - VBA створить рядок в експоненційному вигляді. Наприклад: 123000000 перетворюється в "123Е6".

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

Перетворення Boolean

Коли VBA перетворює значення типу Boolean в числа, значення True перетвориться в 1, а False - в 0.

Коли відбувається зворотне перетворення, то VBA перетворює 0 в False, а будь-яке інше число - в True.

Якщо відбувається перетворення типу Boolean в рядки, то VBA використовує рядок "True" для логічного значення True і рядок "False" - для False. Зворотного перетворення рядка в тип Boolean не передбачено.

Перетворення Date

Коли VBA перетворює тип даних Date в число, результатом є чисельне значення - число типу Double, що містить кількість днів від 30 грудня 1899 (негативне число представляє дату, більш ранню ніж 30 грудня 1899).

Перетворення чисельних типів даних в типи Date є просто зворотним перетворенню типу Date в число.


view1198like0dislike0 avatard_l4w clock 2016-09-21 05:08

Коментарі:



Для даної статті відсутні коментарі

Про нас

"Programmers World" розроблено з метою полегшення в освоєнні навичок програмування, та поширення матеріалів з сфери ІТ Українською мовою.

Кожен бажаючий може безкоштовно користуватися ресурсами сайту, щоб:

- Вивчати теоретичні аспекти мов програмування

- Переглядати практичне застосування теорії при виконанні різних міні проектів з відкритим кодом

- Розміщати свої завдання на форумі для допомоги в їх реалізації, або готового коду який може бути корисний іншим користувачам

- Спілкуватись з іншими користувачами та обмінюватись досвідом

Сайт функціонує на безопланій основі та ентузіазмі розробника, якщо Ви бажаєте долучитись до розвитку даного проекту то можете пожертвувати кошти на рахунки розміщені в блоці "Допомога сайту".

Сайт

Зареєстровані користувачі можуть скористатися системою діалогів, в профілі користувача, для отримання потрібної інформації. Написати!

Також Ви можете використати форми відправки Зауважень та Пропозицій.


Електронна пошта

Ви можете звертатись на нашу поштову скриньку site.programmersworld@gmail.com

www.000webhost.com