Файлы-схемы CSV

Файлы-схемы позволяют сохранять настройки колонок. Пользователи могут сохранять настройки имен колонок, типов данных и информацию о парсинге в отдельный файл-схему. Данный файл в дальнейшем можно загрузить в узел Файлы CSV или Экспорт в файл для быстрой настройки.

Схемы крайне удобны при работе с большим количеством колонок, поскольку это позволяет избежать необходимости воспроизводить одни и те же настройки колонок по нескольку раз. Имейте в виду, что использовать файлы-схемы так же просто (а для некоторых пользователей даже проще и понятнее), как скопировать и вставить узел Файлы CSV при необходимости его повторного использования, или использовать узел Ссылка для того, чтобы сослаться на загруженные данные. Основное преимущество схем заключается в том, что они облегчают импорт CSV-файла, который был создан с помощью узла Экспорт в файл.

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

По умолчанию опции конфигурации схемы не отображаются в диалоговом окне настроек узла, поскольку большинству пользователей это не нужно. Для отображения настроек схемы необходимо:

  1. Открыть контекстное меню скрипта и выбрать Настройки проекта…​.

  2. Переключиться на вкладку Настройки пользователя.

  3. Выбрать раздел Управление проектом и отчетом.

  4. Отметить галочкой опцию Расширенный диалог источника данных.

csv wizard data loading.rus

После этого на вкладке Выбор файла в окне настроек узла Файлы CSV появится новый раздел Схема:

csv wizard schema button.rus

Нажмите соответствующую кнопку, чтобы добавить файл-схему.

В процессе поиска файла-схемы или выбора места для сохранения нового файла вы находитесь в разделах компьютера, на котором запущен сервер PolyAnalyst, и который не всегда является тем же компьютером, на котором открыт Аналитический клиент PolyAnalyst.

Файлы-схемы можно редактировать вручную в текстовом редакторе. Схема имеет стандартный формат ini-файлов. Это удобно, поскольку пользователи могут писать программы для автоматического создания файла-схемы, либо использовать команды пакетного редактирования в процессе обработки текста, что очень полезно при работе с тысячами колонок.

По определению файл-схема всегда содержит раздел schema. Данный раздел начинается с имени раздела в квадратных скобках [schema] на отдельной строке. Далее следуют различные параметры, представленные парой name и value. Сам синтаксис достаточно прост. Рассмотрим два примера:

Пример 1

Таблица данных в формате CSV.

Данные:

Mpg,Year,Model
15,1970,"Buick Skylark 320"
18,1970,"Plymouth Satellite"
16,1970,"Amc Rebel Sst"

Схема:

[schema]
DECIMAL=.
THOUSAND=,
QUOTATIONS=""""
YES=1
NO=0
TIMEFORMAT=12
DATETIMESEQUENCE=DT
DATETIMEFORMAT=MDY
FIRSTROW=1`DELIMITER=,
DELIMITER=,
CHARSET=ANSI
FORMAT=CSVDELIMITED
CASE=1`SCHEMAPROPSEP=TAB
COL1=Mpg FLOAT
COL2=Year FLOAT
COL3=Model CHAR

В данной схеме в качестве разделителя в настройках колонок указана запятая (т.е. FORMAT=CSVDELIMITED), именно поэтому имена колонок и форматы данных разделены запятой.

Пример 2

Таблица данных с фиксированной шириной полей.

Данные:

Mpg Year Model
15 1970 Buick Skylark 320
18 1970 Plymouth Satellite
16 1970 Amc Rebel Sst

Схема:

[schema]
FORMAT=FIXEDLENGTH
SCHEMAPROPSEP=TAB
COL1=Mpg FLOAT SIZE:4
COL2=Year CHAR SIZE:5
COL3=Model CHAR SIZE:22

При открытии файла CSV PolyAnalyst сначала ищет файл в той же папке под тем же именем, но с расширением *.sch. Если подобный файл существует, PolyAnalyst считывает из него определение схемы. Единого формата определения схемы CSV не существует. PolyAnalyst использует собственный формат.

SCH-файл – это файл, который может быть создан в любом текстовом редакторе, например, в Блокноте. Файлы SCH имеют следующую структуру:

' любой текст (данная строка используется для добавления комментариев)
[schema]
<раздел общих параметров>
<раздел определения колонок>

Каждое общее свойство CSV указывается на отдельной строке. Это пара значений, разделенных знаком "=", подобно любому ini-файлу Windows. PolyAnalyst принимает следующие свойства:

Параметр

Возможные значения

Описание

DateTimeFormat

mm/dd/yyyy или dd/mm/yyyy

В качестве значения выступает любая комбинация символов "y" (год), "m" (месяц) и "d" (день), при этом регистр не имеет значения. Обратите внимание: системе PolyAnalyst важна только последовательность компонентов даты (разделители будут проигнорированы).

TimeFormat

12 или 24

При использовании 12-часового формата после любого значения времени должны присутствовать обозначения AM/PM. По умолчанию используется 24-часовой формат.

DateTimeSequence

DT/TD

Определяет, что следует первым – дата (Date) или время (Time). По умолчанию используется последовательность "TD" (время-дата).

Format

CSVDelimited или Fixed

Тип CSV-файла: с разделителем или с фиксированной шириной. По умолчанию выбрано значение "CSVDelimited" (с разделителем).

Delimiter

Любой символ

Разделитель CSV. По умолчанию выбрана запятая (",").

RowsToSkip

Любое число

Количество строк, которые необходимо пропустить до парсинга файла CSV.

Currency

Текст

Символ валюты.

Months

Текст

Названия месяцев, разделенные "\n". Например, "Jan\nFeb\nMar\nApr…​"

dblf

Комбинация символов "i", "f" и "s"

Строка числового формата, где "i" обозначает целое число, "f" – дробную часть, а "s" – знак числа (для обозначения положительных и отрицательных чисел). Например, строковый формат "iiiiiiifffs" применительно к строке "0000030000-" дает числовое значение "-30".

NAN

Текст

Список нулевых значений, разделенных "\n".

Yes

Текст

Список элементов с логическим значением "да", разделенных "\n".

No

Текст

Список элементов с логическим значением "нет", разделенных "\n".

DOW

Текст

Список названий дней недели, разделенных "\n".

FirstRow

0, 1 или 2

0 – первая строка не содержит имен колонок, 1 – первая строка содержит имена колонок, 2 – имена колонок определяются автоматически.

schemapropsep

TAB (табуляция), SPACE (пробел) или любой другой символ

Символ, используемый для разграничения частей списка определений колонок. По умолчанию используется TAB (табуляция).

Определение каждой колонки в файле CSV дается в отдельной строке текста. Определение колонки имеет следующий формат:

[~]COLxxx=<имя> <тип> <аргументы>,

где все части (<имя> <тип> <аргументы>) разделены символом табуляции. Первый необязательный символ "~" обозначает, что данная колонка должна быть пропущена при импорте.

  • "xxx" указывает на номер колонки;

  • <имя> – имя колонки;

  • <тип> – тип колонки. PolyAnalyst различает следующие типы данных: "char" (символьный), "float" (число с плавающей запятой), "integer" (целое число) и "date" (дата);

  • <аргументы> – любые дополнительные аргументы колонки. Они образуют список из пар, разделенных ";". Каждая пара состоит из имени и значения аргумента, которые разделяются ":". Например:

    COL1=Количество FLOAT dblf:iiiiiiifffs;size:11

В настоящее время PolyAnalyst различает следующие дополнительные аргументы колонки:

Аргумент

Возможные значения

Описание

size

Число

Размер колонки в символах. Применимо только к CSV-файлам с фиксированной шириной колонок.

dblf

Комбинация символов "i", "f" и "s"

Строка числового формата, где "i" обозначает целое число, "f" – дробную часть, а "s" – знак числа (для обозначения положительных и отрицательных чисел). Например, строковый формат "iiiiiiifffs" применительно к строке "0000030000-" дает числовое значение "-30".

case

0 или 1

Если указано значение "1", то список, указанный в параметре NAN рассматривается с учетом регистра, в противном случае регистр не учитывается.

trim

0 или 1

Если указано значение "1", то начальные и конечные пробелы в строковых значениях колонки будут пропущены.