CSVToStructArray

<< Click to Display Table of Contents >>

Navigation:  Проект в MasterSCADA 4D > Дерево библиотек > Библиотека BaseObjects > BaseObjects.ФБ.Системные > Работа с файлами >

CSVToStructArray

Функциональный блок CSVToStructArray служит для чтения массива структур из CSV-файла.

Вид в дереве

Вид в редакторе FBD

csvtoStructArray

csvtoStructArray_1

Входы и выходы ФБ:

Название

Тип

Назначение

Входы

FileName

STRING

Путь (относительный или абсолютный) к csv-файлу, из которого нужно прочитать данные.

Delimiter

STRING

Указывается символ, который используется в качестве разделителя данных в исходном csv-файле.

Encoding

Encoding

Определяется соответствие, с которым идет преобразование входной строки. Возможные варианты:

UTF8 (по умолчанию);

CP1251;

ASCII.

Run

BOOL

Запускает процесс чтения из csv-файла массива структур.

StructArray

REF_TO

Определяет массив структур, в который нужно записать данные из CSV-файла. В библиотеке нужно создать структуру, поля которой будут соответствовать полям csv-файла. Затем создать новый тип данных Массив структур переменной длины. Подробный алгоритм работы с элементом смотрите ниже.

Важно! Если ФБ находится внутри программы, например, FBD или ST, то в программу необходимо добавить вход типа REF_TO, связать его с массивом структур, а затем уже этот вход программы связать со входом ФБ StructArray. Если ФБ находится внутри программы ST, то в программе можно указать полное имя массива структур. См раздел Специальные типы данных.

TimestampFormat

STRING

Формат временной метки. По умолчанию yyyy.MM.dd HH:mm:ss.

Kind

BaseObjects.DateTimeKind

Формат перечисления с вариантами, определяет тип времени (Библиотеки.BaseObjects.Типы данных.DateTimeKind):

UTC;

Локальное/Local — учитывает смещение времени;

Custom — смещение определяется дополнительным параметром Offset.

Offset

TIME

Определяет смещение времени в часах и минутах. Используется только при Kind=Custom.

Выходы

Error

STRING

Указывается текст ошибки, если работа блока была неудачной.

ФБ CSVToStructArray учитывает пустые строки в CSV-файла. Данные записываются в массив без смещения.

Порядок работы с функциональным блоком

Рассмотрим работу с функциональным блоком на примере. Пусть есть файл вида:

csvtoStructArray_2

Значения из файла нужно получить в MasterSCADA 4D

1. В библиотеке создать новый тип данных Структура. Поля структуры должны соответствовать столбцам файла из которого нужно прочитать данные.

В рассматриваемом примере добавляем три поля. Имена полей соответствуют заголовкам столбцов файла, а типы полей соответствуют типу данных, которые записаны  в этих столбцах:

csvtoStructArray_3

Важно! Можно указывать поля структуры только для тех столбцов, которые нужны в проекте. Столбцы с именами, не указанными в структуре, будут пропущены.

2. Далее необходимо создать тип в библиотеке:

csvtoStructArray_4

3. Создать параметр с данным типом:

csvtoStructArray_6

4. Добавить программу, например, FBD, и в рабочую область перетащить ФБ CSVToStructArray.

5. На выходной клеммник перетащите созданный параметр.

5. Соедините вход ФБ StructArray с параметром.

6. Установите значения входов FB FileName, Delimiter, Encoding, либо константами, либо установите связь с нужными параметрами.

7. Запустите проект на исполнение.

8. В момент изменения значения входа Run  с False на TRUE произойдет чтение из файла:

csvtoStructArray_5