Главная страница
Навигация по странице:

  • Преобразование чисел в строку, используя Build Text Express VI

  • Преобразование строка->число

  • LabView

  • Concatenate String

  • Properties

  • Editable

  • Array

  • Rotate

  • Create

  • лекция. лекция 2_3. Лекция 23 Занятие Строковые переменные. Строки таблицы


    Скачать 0.54 Mb.
    НазваниеЛекция 23 Занятие Строковые переменные. Строки таблицы
    Анкорлекция
    Дата08.11.2022
    Размер0.54 Mb.
    Формат файлаdocx
    Имя файлалекция 2_3.docx
    ТипЛекция
    #777759


    Тема 2. Основные конструкции программирования LabVIEW

    Лекция 2/3

    Занятие 3. Строковые переменные.

    1. Строки

    2. таблицы.


    Строка (string) - это последовательность отображаемых и служебных ASCII символов. Строки используются для самых разных целей, как правило - для создания текстовых сообщений, в различных диалоговых окнах, для сохранения данных в файл и т.п. На лицевой панели строки отображаются в виде таблиц(tables), текстовых полей (text entry boxes), и меток (labels).

    Строковые регуляторы и индикаторы находятся в палитрах Controls>>Text Controls и Controls>>Text Indicators соответственно. Естественно, можно менять их форму и размеры, а так же (чего нет у числовых), добавить полосу прокрутки - для этого щелкнуть правой кнопкой мыши и выбрать в меню Visible Items>>Scrollbar.

    Можно выбрать один из четырех способов отображения текстовых данных (в контекстном меню, по правому щелчку мыши):

    1. Normal Display - в этом режиме строка отображается "как есть",

    отображаются только печатаемые символы, непечатаемые не отображаются

    (или отображаются в виде квадратиков). Пример: There are four display types

    is a backslash.

    2. Codes Display - в этом режиме для всех непечатаемых символов отображается

    их "слэш-код" (кто c изучал, тот поймет. Для тех кто не изучал - \n - это,

    к пример, код перехода на новую строку).

    Пример: There\sare\sfour\sdisplay\stypes.\n\\\sis\sa\sbackslash.

    3. Password Display - ну, тут все просто - все символы отображаются в виде

    звездочек: *****************************

    4. Hex Display - в этом режиме вместо символов показывается их ASCII код в

    шестнадцатеричном виде: 5468 6572 6520 6172 6520 666F 7572 2064 6973 706C

    6179 2074 7970 6573 2E0A 5C20 6973 2061 2062 6163 6B73 6C61 7368 2E.

    Строковые функции

    Или если по-русски, то функции для работы со строками:) Их довольно много разных, и расположены они все в палитре Functions>>All Functions>>String. Рассмотрим несколько для примера: String Length - возвращает длину строки (количество символов в строке). Concatenate Strings - объединение строк, делает из нескольких поданных на вход строк или массива строк одну большую строку. Чтобы изменить количество входных терминалов можно просто растянуть функцию за границу, либо щелкнуть правой кнопкой мыши и выбрать "Add Input" в контекстном меню. String Subset - возвращает подстроку, начиная с символа с номером offset (нумерация начинается с нуля) и длиной length. Match Pattern - осуществляет поиск в строке по шаблону (регулярное выражение), начиная с символа offset и выдает результат поиска в виде трех подстрок - само совпадение с шаблоном, строка до, и строка после (before substring, match substring , after substring).

    Преобразование чисел в строку, используя Build Text Express VI

    Подпрограмма Build Text, расположенная в палитре Functions>>Output, позволяет осуществить конкатенацию (слияние) строк, по ходу дела преобразуя числа в строки, если это нужно. При помещении этого VI на диаграмму появляется окно настройки, в котором можно задать параметры преобразования:



    Как видно, все довольно просто. Вводим текст шаблона, в котором с помощью %% выделяем переменные (вместо имени переменной будет подставлено ее значение). Выбираем, в каком виде и с какой точностью будет отображаться число при преобразовании его в строку. В результате получим примерно следующее:



    Преобразование строка->число

    Для осуществления обратного преобразования существует специальная функция - Scan From String. Она осуществляет поиск в строке в соответствии с заданным шаблоном, и выдает результат поиска в виде числа. Естественно, для того чтобы поиск был успешным, в строке должны содержаться нужные символы - а именно, числа 0-9, +, -, e, E, и период (.). Пример:



    Здесь в результате поиска будет найдено число 1.28E+2, что, если перевести в человеческий вид, равно 128. %f - это тот самый формат, что соответствует числам с плавающей точкой. Чтобы этот формат изменить, можно щелкнуть правой кнопкой мыши по функции, и выбрать в контекстном меню "Edit Scan String". Появится окно, в котором можно будет задать нужные параметры и получить строку для нужного формата:



    Естественно, строку формата можно написать и вручную (если вы понимаете, как это сделать). Все необходимые данные для этого можно найти в справке LabVIEW.

    Соединение двух строк


    Для того чтобы соединить две строки средствами LabView необходимо создать новый проект, перейти на переднюю панель и расположить на ней два элемента String Control и один String Indicator из раздела Classic String & Path (рис. 1).



    Рис. 1. Расположение элементов на передней панели
    Затем переключиться на блоковую диаграмму и добавить операцию Concatenate String к имеющимся элементам из раздела Programming –> String, после чего правильно соединить, как на рис. 2.


    Рис. 2. Расположение элементов на блоковой диаграмме

     

    Таким образом, при помощи средств визуального программировании LabView можно осуществить соединение двух строк.
    2учебный вопрос

    Таблицы

    Элемент управления Таблица, расположенный в палитре Controls-List&Table предназначен для создания таблиц на лицевой панели. Каждая ячейка находится в строке и столбце таблицы. Поэтому таблица представляет собой двумерный массив строк. На рис 1 показана таблица и ее составные части.

    Для инициализации значений ячеек таблицы используется инструмент управление или ввод текста, с помощью которых достаточно ввести текст в выделенную ячейку.

    рис.1.

    где 1- ячейка таблицы, 2- заголовок строки, 3- заголовок столбца, 4-индекс по горизонтали, 5-вертикальная полоса прокрутки, 6. – индекс по вертикали, 7.-горизонтальная полоса прокрутки.

    Таблица представляет собой двумерный массив строк. Для ее использования в качестве элемента индикации, необходимо двумерный массив чисел преобразовать в двумерный массив строк.

    Сортировка таблицы

    Задача. Обработайте таблицу в ВП таким образом, чтобы имелась возможность сортировать различные столбцы таблицы по возрастанию. Саму сортировку осуществите с помощью функции Sort1DArray, которая находится в палитре Functions-Array. Эта функция сортирует элементы одномерного массива в порядке возрастания. Если массив состоит из кластеров, функция сортирует массив таким образом, чтобы интересующий пользователя столбец стал первым. И потом сформировать из полученного массива кластер, который мы и будем сортировать. После осуществления сортировки кластер следует преобразовать массив и вернуть столбцы на свои первоначальные места.

    Создайте саму таблицу и целочисленный элемент управления, который будет указывать столбец для сортировки. Заполните таблицу какими-либо данными. Можете позаимствовать данные на рис. 2
    рис. 2
    По умолчанию заголовки столбцов и строк не видны. Чтобы заголовки столбцов стали видны в свойствах таблицы (диалоговое окно свойств вызывается из контекстного меню пунктом Properties) поставьте флажок напротив ShowColumnHeaders. Кроме этого, чтобы появилась возможность редактировать заголовки, включите в контекстном меню таблицы опцию EditableHeaders. Как осуществить сдвиг столбца, по которому будет проводиться сортировка? Сдвиг столбца осуществите с помощью Rotate 1 DArray из той же палитры Functions-Array. Одномерный массив, который подается на вход функции Rotate 1 DArray, представляет собой строки нашей таблицы. Каждую строку получите с помощью цикла For. Если для каждой строки в отдельности поменять элементы местами, то в целом в таблице местами поменяются столбцу.допустим, как и на рис.2. , необходимо сортировать таблицу по третьему столбцу (отсчет начинается с нуля). Иначе говоря , столбец с отчествами надо поместить на первое место. Функция Rotate 1 DArray перемещает n элементов из начала в конец, если n>0. И наоборот перемещает n элементов из конца в начало, если n<0.Если на вход n подан 0, функция строку не изменяет. Столбцы таблицы надо сдвинуть на 2 столбца влево до сортировки, и на 2 столбца вправо после. Поэтому до использования функции сортировки необходимо подать -2 на вход n функции Rotate 1 DArray, а после +2.

    Преобразование массива в кластер и кластер в массив осуществляют функции ArrayToCluster и ClusterToArray соответственно. При преобразовании кластера в массив никаких дополнительных операций проводить не требуется. А при преобразовании массива в кластер следует указать размер кластера. Предполагается, что структура таблицы известна заранее. Делается это через пункт clustersite контекстного меню функции. В нашем случае размер кластера равен 4.

    Итак , вы разбили таблицу на отдельные строки. В каждой строке в цикле For поменяли местами столбцы. Сформировали из элементов строки кластер. На выходе из цикла For собрали из кластеров массив. Отсортировали массив кластеров по первому элементу в кластере. Опять использовали цикл For, в котором из каждого элемента массива кластеров получили одномерный массив. Поменяли местами столбцы обратно. На выходе цикла For собрали отсортированные строки в таблицу. Остается вывести этот результат в ту же таблицу. Вариант с новой таблицей на лицевой панели в виде элемента индикации, безусловно, возможен. Однако такой способ отображения информации при работе с таблицами по вполне понятным причинам не является общепринятым. Необходимо,чтобы отсортированная таблица отображалась в исходной таблице В таких случаях удобно использовать локальные переменные.Локальную переменную для любого элемента управления или индикации можно создать из контекстного меню элемента, выбрав пункт Create-LocalVariable. Этот пункт контекстного меню доступен как на лицевой панели, так и на блок-диаграмме.После того, как вы создали локальную перееменную, ее терминал появится рядом с терминалом элемента управления или индикации на блок-диаграмме.рис 3

    Локальную переменную можно использовать в любом месте блок-диаграммы(если это не противоречит логике выполнения программы).Ее можно использовать как для чтения данных, так и для записи. В качестве последнего используйте локальную переменную, соединив ее с полученной отсортированной таблицей. ВП готов. Окончательная блок-диагрмма показана на рис. 4. Перейдите на лицевую панель и испытайте программу. Подумайте , как сделать так, чтобы пользователь выбирал не номаер столбца, а его название. Добавьте возможность сортировать столбцы не только по возрастанию, но и по убыванию. При этом управление должно осуществляться с лицевой панели ВП.



    рис.3 рис.4


    написать администратору сайта