Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 18 апр 2024 05:50

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Вопрос по командам TCP сервера
СообщениеДобавлено: 20 фев 2008 11:17 
Специалист
Специалист

Зарегистрирован:
14 сен 2007 19:22
Сообщения: 46
Скажите пожалуйста как мне с помощью команд TCP сервера вписать текст в обьект типа "таблица"

P.S. Если можно то пример для программы TCPScript.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос по командам TCP сервера
СообщениеДобавлено: 27 фев 2008 08:45 
Специалист
Специалист

Зарегистрирован:
11 мар 2005 03:07
Сообщения: 45
Откуда: Mukachevo
Описание команд есть здесь
http://www.geosystema.net/forum/viewtopic.php?f=1&t=49&p=475&hilit=GetObjectParamBuf#475
Пример:
http://www.tcpscript.chat.ru/Download/TablEdit.rar


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по командам TCP сервера
СообщениеДобавлено: 05 мар 2009 15:26 
Участник
Участник

Зарегистрирован:
12 дек 2008 12:33
Сообщения: 1
Я тут разбирался в коде скрипта, который нашел в файле TablEdit.rar и у меня возник вопрос:
А можно ли уточнить аргументы функции getbitstr() и ее назначение?


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос по командам TCP сервера
СообщениеДобавлено: 12 мар 2009 00:54 
Специалист
Специалист

Зарегистрирован:
11 мар 2005 03:07
Сообщения: 45
Откуда: Mukachevo
Прочитайте справку для TCPScript, в разделе Дополнительно\Дополнительные функции
Цитата:
function GetbitStr (divisor:string;s:string;begint,endint:integer):Variant;
Функция вырезает из строки s разделенной divisor строку между begint и endint.
Пример:s:= '1 2254.25 4256.36 100';
GetbitStr (' ',s,0,1); >> вернет 1
GetbitStr (' ',s,1,2); >> вернет 2254.25
GetbitStr (' ',s,2,3); >> вернет 4256.36
GetbitStr (' ',s,3,0); >> вернет 100
GetbitStr (' ',s,1,0); >> вернет 2254.25 4256.36 100
GetbitStr (' ',s,1,3); >> вернет 2254.25 4256.36
GetbitStr ('.',s,0,1); >> вернет 1 2254
или s:='804,-,Закарпатська,Ужгородський,Сторожниця,вулиця Духновича,6,-,-'
GetbitStr (',',s,3,7); >> вернет Ужгородський,Сторожниця,вулиця Духновича,6
GetbitStr ('ж',s,1,2); >> вернет городський,Сторо


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по командам TCP сервера
СообщениеДобавлено: 17 мар 2009 17:01 
Гуру
Гуру

Зарегистрирован:
25 дек 2007 11:44
Сообщения: 196
Volod писал(а):


Очень заинтересовала данная задумка. Поэтому возник вопрос.

Вообще есть какой то отличительный аттрибут(ы) слоя типа таблица от других слоев карты, кроме названия слоя и ID, для нахождения наличия объекта или пометки этого слоя (таблица) через TCP?


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос по командам TCP сервера
СообщениеДобавлено: 25 мар 2009 14:26 
Гуру
Гуру

Зарегистрирован:
25 дек 2007 11:44
Сообщения: 196
Доброе времени суток!

Подскажите пожалуйста, как перебрать (пометить) поодиночно объекты одного слоя уже из выделенных командой ‘Map.FindFirstByParameters ’ . Вроде как есть 'Map.NextSelected' – возвращает индекс следующего выделенного объекта. Юзал как-то криво получается.

Просто возникла такая ситуация: в карте есть (Х) количество объектов одного слоя, их нужно поочередно пометить для выполнения определенных действий над каждым объектом отдельно.

Если можно, то киньте примерчик. Спасибо!!!


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос по командам TCP сервера
СообщениеДобавлено: 25 мар 2009 17:16 
Гуру
Гуру

Зарегистрирован:
11 сен 2008 16:45
Сообщения: 337
Sergey, когда-то делала это так:

Код:
var i, j:                integer;
    OBJCOUNT_str:        string;
    OBJCOUNT:            integer;
    ObjArr:              string;
    ObjList:             String;
    Label1:              Integer;
    Label2:              Integer;
begin

OBJCOUNT_str:=VarToStr(RUNCOM('map.selcount'));
OBJCOUNT:=StrToInt(OBJCOUNT_str);

ObjList:=RUNCOM('Map.Selected.List');

RUNCOM('executeMenu spbdeselectAll');

RUNCOM(IntToStr(Length(ObjList)-1));
i:=1;
While (i<=length(ObjList)) do begin
Label1:=i;
inc(i);
    while (ObjList[i]='0') or (ObjList[i]='1') or
          (ObjList[i]='2') or (ObjList[i]='3') or
          (ObjList[i]='4') or (ObjList[i]='5') or
          (ObjList[i]='6') or (ObjList[i]='7') or
          (ObjList[i]='8') or (ObjList[i]='9') do begin
      inc(i);
    end;
Label2:=i;
Inc(i, 2);

RUNCOM('Map.SelectObject '+Copy(ObjList, Label1, Label2-Label1));

// операции над выделенным объектом

RUNCOM('executeMenu spbdeselectAll');

end;


end.


Может быть код и корявый, но по крайней мере работает...
Вместо перебора 0..9 лучше искать разделитель... Это два символа, вот правда каких - не знаю...


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос по командам TCP сервера
СообщениеДобавлено: 25 мар 2009 17:47 
Администратор
Администратор

Зарегистрирован:
28 авг 2004 17:19
Сообщения: 1009
Olg@ писал(а):
Это два символа, вот правда каких - не знаю...

Это символы перевода строки и возврата каретки #10#13.
Проще всего парсить их при помощи CтрингЛиста, примерно так:

ObjList:=RUNCOM('Map.Selected.List');

SL:=TStringList.Create;
SL.Text:=ObjList;

For I:=0 to SL.Count-1 do if SL[I]<>'' then
begin
RUNCOM('Map.SelectObject '+SL[I]);
// операции над выделенным объектом
end;

SL.Free;

_________________
Команда разработчиков Digitals
(наш skype, e-mail и телефон находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals | Страница в Facebook


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по командам TCP сервера
СообщениеДобавлено: 30 мар 2009 08:11 
Гуру
Гуру

Зарегистрирован:
25 дек 2007 11:44
Сообщения: 196
Добрый день!!!
Пока не юзал код, но всем ОГРОМНОЕ СПАСИБО!!!


Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 67


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB