Робота з рядками у LabVIEW: практика 2


Щось я багато пишу про теорію програмування у LabVIEW, але не наводжу конкретних прикладів. Цього разу буде інакше і ми побачимо як можна здійснювати операції з текстом у LabVIEW на прикладі невеличкої лабораторної, яку я даю моїм студентам на початку курсу. Отож завдання: користувач у три відповідних поля вводить своє ім’я, прізвище та по-батькові, а на виході отримує в одному полі повністю всі три слова, причому незалежно від того, як введено текст, починаються слова з великої літери, а всі інші будуть малими. Та ще й у випадку якщо результуючий рядок довший за певне значення, то він перетвориться у прізвище та ініціали.

При виконанні завдання користуватимемося концепцією модульного програмування: складнішу задачу розбиваємо на більш прості підзадачі, кожну з яких реалізуємо окремо. Отож, для початку займемося приведенням введеного користувачем слова до “нормального” вигляду – велика літера спочатку, а потім всі малі. Блок-діаграму розробленої підпрограми і її передню панель я зобразив на наступному рисунку.

 

Приводимо текст до "культурного вигляду"

Приводимо текст до "культурного вигляду"

Трохи пояснення. Отож, цифрами 1 та 7 позначено відповідно вхідну та вихідну величину (назви терміналів “tExT” та “Text” пояснюють суть операції). Позиція номер два – це константа,яка подається на відповідні входи вузла “String Subset” (позиція 3). Тут треба зауважити, що для перетворення тексту до “нормального” вигляду ми розділяємо його на дві частини: перша літера (яку далі обробляємо функцією перетворення у верхній регістр “To Upper Case” – позиція 5) та решта тексту (з якою працює функція приведення до нижнього регістру “To Lower Case” – позиція 4).

Саме тому у першому випадку ми подаємо константу “1” на вхід “length” (довжина підрядка) і залишаємо непід’єднаним вхід “offset” (зміщення) – за замовчуванням його значення рівне нулю. Тобто задаємо копіювання одного першого (без зміщення від початку) символу. В другому випадку ми робимо якраз навпаки і встановлюємо зміщення рівним одиниці, чим пропускаємо перший символ, а довжину не під’єднуємо і для неї береться значення за замовчуванням (“rest”, або решта тексту).

Результат операції – два текстових рядки, перший з яких містить першу літеру введеного слова, переведену у верхній регістр, а другий – решту слова у нижньому регістрі. Ці два рядки ми об’єднуємо у один функцією “Concatenate Strings” (позиція 6).

Розроблений інструмент доцільно зберегти у вигляді підпрограми, для чого виділяємо всю блок-діаграму за винятком вхідного і вихідного терміналів і вибираємо в меню “Edit” опцію “Create SubVI”. В результаті отримаємо щось отаке:

 

Підпрограма у вигляді іконки

Підпрограма у вигляді іконки

Далі зберігаємо наш файл (тут треба уважно читати повідомлення у діалогових вікнах): LabVIEW спочатку повідомить, що у нашій програмі є незбережені підпрограми і запропонує зберегти їх, погоджуємося і обираємо гарне ім’я для нашого “нормалізатора тексту”. Згодом він нам ще знадобиться.

Продовження уроку читайте далі.

 

Почитайте ще оце:


Залиште коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

2 thoughts on “Робота з рядками у LabVIEW: практика