На главнуюКонтактыКарта сайта
В коробке инженера
В коробке инженера
Обзоры программ, интересных блогов и программирование
Заметки о Rastrwin, Matlab
  • Twitter Colee

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

Автор: colee | Рубрика: Обзоры » Программы » Rastrwin
Четверг, 19 апреля 2012 г.
Теги: , , , Просмотров: 6037

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

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

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

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

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

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

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

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

1;2;7,08;26,10;-0.000156
2;3;8,26;30,45;-0.000182
3;4;11,80;43,50;-0.000260

В этом файле данные разделены на столбцы 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:

    схема1.rg2;izm_vetv1.csv
    схема2.rg2;izm_vetv2.csv

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

  • -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 2 и пример с использованием import_load_пример.zip 4


Поделиться с друзьями:
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru digg.com blogger.com livejournal.ru google.com yandex.ru del.icio.us
Оставьте комментарий!

Используйте нормальные имена

Ваш E-mail не публикуется, используется для обратной связи и для выбора аватара с сайта gravatar.com

Публикуется вместе с комментарием

усмешка LOL сыр улыбка подмигнуть ухмылка глаза в сторону в тупике удивление большое удивление малинка пустое лицо сдвинутая бровь Оо гррр ох ох неудачник смущенный больной Тау хммм бешенный злой клевый поцелуй шок крутой недовольный

Запрещается оскорблять окружающих и использовать ненормативную лексику

Вы должны включить JavaScript, чтобы оставить сообщение