ПО Rastrwin: скрипт импорта данных по списку файлов с динамической выборкой

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

Контекстное меню

Форма Экспорта

Форма Импорта

В формах указываются:

  • путь до файла
  • таблица, в которую нужно экспортировать или импортировать
  • разделитель данных для файла
  • поля которые нужно экспортировать или импортировать
  • выборка — условие, по которому нужно выделить определенные данные

А что делать, если нужно сделать это с несколькими файлами? Тут без макросов и скриптов далеко не уйдешь.

Задача такая: проставить в нескольких файлах новые значения в определенных местах, используя динамические выборки (выборки, в которых меняется условие)

Для примера нам нужно в таблице ветви заменить значения столбцов r,x,b на новые значения. У нас есть 2 файла: схема1.rg2 и схема2.rg2. Для каждого из этих файлов у нас есть файлы izm_vetv1.csv и izm_vetv2.csv с таким содержимым:

В этом файле данные разделены на столбцы ip;iq;r;x;b, где

  • ip — столбец начала ветви
  • iq — столбец конца ветви
  • r, x и b — сопротивления и проводимость ветви

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

Разберем все ключи, которые заложены на данный момент:

  • -s выборка
  • -h заголовок таблицы в файле csv
  • -j столбцы, которые нужно импортировать
  • -sf абсол. путь до файла/имя файла для множественной загрузки данных
  • -f абсол. путь до файла/имя файла rastrwin для загрузки данных
  • -fcsv абсол. путь до файла/имя файла csv для загрузки данных
  • -t имя таблицы, куда надо импортировать
  • -d разделитель данных в исходных данных через ключи -h, -j
  • -dcsv разделитель данных в текстовых файлах csv
  • -? справка

Для нашего примера ключи будут следующие

  • -sf замена_ветвей.txt
  • Содержимое файла замена_ветвей.txt:

    Файл разделен на название файлов растра и файлов с данными

  • -t «vetv»
  • Указываем, что импорт надо осуществить в таблицу vetv (ветви)

  • -h «ip,iq,r,x,b»
  • указываем заголовок в файлах izm_vetv1.csv и izm_vetv2.csv

  • -j «r,x,b»
  • но импорт нужен всего лишь 3 столбцов, поэтому указываем только нужные поля

  • -s «ip=%ip% & iq=%iq%»
  • Для нашей задачи, для каждой новой ветви будут новые значения начала и конца, поэтому для каждой новой строчки переменные %ip% и %iq% заменятся на числа в файле csv. Для этого мы явно задали заголовок в файлах csv через ключ -h

Получилось следующее

Запуск скрипта

После работы скрипта выводится сообщение об окончании работы и появляются новые файлы с припиской _patch, чтобы можно было восстановить из оригинала информацию.

Запуск скрипта

Скачать скрипт import_loadv1.2.vbs и пример с использованием import_load_пример.zip

Оцените статью
В коробке инженера
Добавить комментарий

Нажимая на кнопку "Добавить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности

Введите буквы на русском языке : *

Reload Image