Русский
English
Главная
RastrWin
Программа
Последние изменения
Часто задаваемые вопросы
Аннотация
Лицензирование и защита от копирования
Права Windows для пользователя RastrWin
Курсы
Компонентная архитектура
Интерфейс
Инструкция по установке
Документация, видео, презентации
Свидетельство о регистрации
RastrKZ
RastrMDP
RastrOS
ZamerSeti
Архив
Bars-Lincor
Расчетная модель
Система моделирования
Последние изменения
Программа
Инструкция пользователя
Инсталляция
RUStab
Загрузка
Последние изменения
Поддержка
Поддержка
Форум
Техподдержка
Персональная
Макро студия
Макро студия
Автоматизация
Работа с SQL
Оценка параметров ЛЭП и ТР
Эффективность размыкания сети
Анализ напряжений в Excel
Автоматизация с "AutoIt"
Создание графа сети из режима
Передача графики в SVG
Вариантные расчеты
Импортозамещение
О нас
О компании
Фотогалерея
Пользователи
Отчеты об использовании своего имущества
Реквизиты
Поддержка
Форум
Техподдержка
Персональная
Авторизация
Запомнить меня на этом компьютере
Забыли свой пароль?
Регистрация
Поиск по сайту
Подписка
Новости Bars- Lincor
Новости RastrWin
Общие новости
Новости RUStab
Изменение параметров
Hits
66851608
7711
Hosts
3525170
1310
Visitors
53087821
7532
70
Главная
/
Поддержка
/
Форумы
/
Макро
Форум «Макро»
Версия для печати
Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация
Тема: «
Rastr и Delphi
» в форуме:
Макро
Просмотров: 14276
Windtalker
Постоянный посетитель
Всего сообщений:
225
Дата регистрации:
09.07.2007
Создано:
06.06.2008 18:14:47
Подскажите , работоспособен ли метод Tabla Rastr - ReadCDU ?
Пишу в Delphi
var
tnode:oleVariant;
file:string;
begin
tnode:=Rastr1.Tables.Item
('node');
tnode.ReadCDU (cdu_repl,file,'0201,nsx,
ny,uhom,pn,qn,pg,qg,vzd,q
min,qmax',' ');
Приложение упорно совершает недопустимую операцию ???????
Профиль
Наверх
Юрий Федоров
Посетитель
Всего сообщений:
39
Дата регистрации:
07.09.2007
Создано:
07.06.2008 19:29:21
Думается, что метод все же работоспособен
По крайней мере, соответствующий макрос выполняется корректно:
Код
set Tbl=Rastr.Tables("vetv")
Tbl.ReadCDU CDU_REPL,"c:\test.cdu","0
301,np,ip,iq,r,x,b,kti","
"
Также нет проблем в СОМ-версии для CBuilder:
Код
...
Tables=Rastr->Tables();
Table=Tables->Item(TVaria
nt("vetv"));
Table->ReadCDU(CDU_REPL,L
"C:\test.cdu",L"0301,np,i
p,iq,r,x,b,kti",L"");
Col=Table->Cols->Item(TVa
riant("r"));
for(i=0;i<Table->Size;i++
)
Form1->Memo1->Lines->Add(
"R("+IntToStr(i)+")="+Flo
atToStr(Col->get_Z(i).dbl
Val));
...
Наверное, Delphi тоже не виновата
Проверьте типы передаваемых входных параметров, скорее всего какой-нибудь параметр метода задается неверно. Вот например, в Rastr-manual.pdf указано, что первый параметр метода может быть CDU_REPL, а не cdu_repl, как у Вас. Как говорится, "the variable is case sensitive!". Следите за написанием, а лучше задавайте параметр числом: CDU_REPL=1.
Профиль
Наверх
Евгений Машалов
Администратор
Всего сообщений:
1042
Дата регистрации:
23.04.2007
Создано:
03.11.2009 15:39:56
Обнаружил сообщение в дружественном форуме:
http://forum.regimov.net/
index.php?t=...rt=0&rid=0
С выводом не согласен. Проблема широко известна и связана с Delphi, компилятор которой формирует странный BSTR нулевой длины в виде NULL-указателя. Ключ "c" нужно использовать, когда он действительно нужен, во всех остальных случаях, когда нужен вызов расчета режима без параметров, достаточно в параметрах указать пробел.
Профиль
Наверх
Андрей Крутенёв
Гость
Создано:
17.11.2009 11:56:38
Цитата
Windtalker пишет:
tnode.ReadCDU (cdu_repl,file,'0201,nsx,
ny,uhom,pn,qn,pg,qg,vzd,q
min,qmax',' ');
А если так:
tnode.ReadCDU (cdu_repl,file,'0201,nsx,
ny,uhom,pn,qn,pg,qg,vzd,q
min,qmax','sel=0')
Наверх
tan ya
Заглянувший
Всего сообщений:
3
Дата регистрации:
14.02.2011
Создано:
15.02.2011 12:43:53
Подскажите, пожалуйста, как в delphi получить значения из таблиц Растра? Пробую так:
s:=cols.Item('ny').z(1);
В ответ ошибка "Член группы не найден"
Что я делаю не так? Можно ли вообще эти функции (z, zn, zs) использовать?
Профиль
Наверх
Михаил Реутов
Постоянный посетитель
Всего сообщений:
224
Дата регистрации:
21.11.2007
Создано:
15.02.2011 14:58:20
что такое cols? как был получен объект?
и попробуйте
Код
s:=cols.Item("ny").Z(1);
Профиль
Наверх
tan ya
Заглянувший
Всего сообщений:
3
Дата регистрации:
14.02.2011
Создано:
15.02.2011 17:58:28
cols - коллекция столбцов:
Код
tabs:= rastr.tables;
tab:= tabs.Item('node');
cols:= tab.Cols;
Когда вывожу
Код
cols.Item('ny').name
проблем не возникает - имя столбца прекрасно выводится. Видимо, дело именно в функции Z. Или, может, в типах данных (я пытаюсь вывести в переменную типа real)
Вариант
Код
s:=cols.Item("ny").Z(1);
не компилируется
Профиль
Наверх
Михаил Реутов
Постоянный посетитель
Всего сообщений:
224
Дата регистрации:
21.11.2007
Создано:
16.02.2011 01:22:22
Цитата
tan ya пишет:
Или, может, в типах данных (я пытаюсь вывести в переменную типа real)
Попробуйте long или long integer (целое, 4 байта), как правильно называется этот тип в Delphi не знаю. В VB метод
Z
для столбца
ny
возвращает
Long
.
Профиль
Наверх
tan ya
Заглянувший
Всего сообщений:
3
Дата регистрации:
14.02.2011
Создано:
16.02.2011 10:44:57
Цитата
Попробуйте long или long integer (целое, 4 байта), как правильно называется этот тип в Delphi не знаю. В VB метод Z для столбца ny возвращает Long.
Пробую longint - не получается. Вообще ни с одним типом не работает.
Вот мой код:
Код
rastr:= CreateOleObject('Astra.Ra
str');
rastr.load(1, 'F:\rastr\210606-3-00
.rg2', ''); // или rastr.load(1, 'F:\rastr\210606-3-00
.rg2', 'C:\Program Files\RastrWin\SHABLON\ре
жим.rg2');
tabs:= rastr.tables;
tab:= tabs.Item('node');
memo1.Text:= IntToStr(tab.size); // Здесь выводит 1019, то есть таблица не пуста
cols:= tab.Cols;
col:= Cols.item('ny');
s:=col.name;
n:=col.Z(1);
col:= unassigned;
cols:= unassigned;
tab:= unassigned;
tabs:=unassigned;
table:= unassigned;
rastr:= Unassigned;
Причем, когда вставляю данные в Растр, все работает:
Код
col.z(1020):=2020;
P.S. Никто не знает, почему форум regimov.net не работает? Там вроде была подобная тема..
Профиль
Наверх
Андрей Семин
Постоянный посетитель
Всего сообщений:
225
Дата регистрации:
09.07.2007
Создано:
01.08.2011 17:37:24
Цитата
tan ya пишет:
Подскажите, пожалуйста, как в delphi получить значения из таблиц Растра? Пробую так:
s:=cols.Item('ny').z(1);
В ответ ошибка "Член группы не найден"
Что я делаю не так? Можно ли вообще эти функции (z, zn, zs) использовать?
tan ya,
Tan ya !
Все очень просто.
В Delphi индексы перчисляемых элементов массивов, а как раз массивом является Cols указываются в квадратных скобках
примерно так это выглядит
tn.AddRow;
tn.cols.item('na').z[tn.s
ize-1]:=11;
tn.cols.item('name').zs[t
n.size-1]:='ТУЛА';
tn.cols.item('no').z[tn.s
ize-1]:=1;
Профиль
Наверх
Андрей Семин
Постоянный посетитель
Всего сообщений:
225
Дата регистрации:
09.07.2007
Создано:
11.10.2011 09:18:16
Уважаемые разработчики !
Помогите пожалуйста разобраться с одной проблемой !
При попытке создания объекта Rastr в проекте batch -файла в Delphi -синтаксис выглядит как
r:=coRastr.Create;
при компиляции проекта выдается ошибка object not initialized.
Умом понимаю, что где то надо прописать инициализацию объекта, перерыл все книжки, но ничего не помогает. Самое интересное, что обычное приложение Delphi данный пример проглатывает на ура, видимо объект инициализируется автоматически.
Профиль
Наверх
Читают тему
гостей:
1
, пользователей:
0
, из них скрытых:
0
Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация
Программный комплекс «RastrWin»
© «RastrWin», 1988-2019