www.map-info.ru :: Просмотр темы - Замена , на .
                               РќР° главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  

 
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
xax_nv



Зарегистрирован: 28.10.2011
Сообщения: 43
Откуда: г. Нижневартовск

СообщениеДобавлено: Чт Окт 31, 2013 10:16 am    Заголовок сообщения: Замена , на . Добавить ответ со ссылкой на данный текст

Приветствую всех!
Подскажите, как программно в тестовом слое заменить у всех объектов "," на ".".
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vovik



Зарегистрирован: 04.05.2008
Сообщения: 57

СообщениеДобавлено: Ср Ноя 06, 2013 6:15 am    Заголовок сообщения: Re: Замена , на . Добавить ответ со ссылкой на данный текст

Держи код

Include "mapbasic.def"
Declare Sub Main
Declare function MyReplace(ByVal s as string, ByVal s1 as string, ByVal s2 as string) as string
Sub Main
Dim i, n, m As Integer
Dim objtype As SmallInt
Dim aobj As object
OnError GoTo exit_err
'выбираем строки таблицы table_name имеющие объекты на карте
Select obj From table_name into ~temp
n = TableInfo(~temp , TAB_INFO_NROWS )
If n = 0 Then exit sub End If
For i = 1 to n
Fetch rec i From ~temp
aobj = ~temp.obj
objtype = ObjectInfo(aobj,OBJ_INFO_TYPE)
If objtype = OBJ_TEXT Then ' если объект текстовый
objtxtstr = ObjectInfo(aobj,OBJ_INFO_TEXTSTRING)' извлекаем текст из объекта
' меняем в строке objtxtstr все точки на запятые
objtxtstr = MyReplace(objtxtstr, "." , "," )
If objtxtstr <> "" Then
m= m+1
Alter Object aobj Info OBJ_INFO_TEXTSTRING, objtxtstr
Update ~temp Set obj = aObj where RowID= i
End If
End If
next
If m > 0 Then print "Заменено " + m +" строк" End If
commit table table_name
close table ~temp
exit_err:
End Sub
function MyReplace(ByVal s as string, ByVal s1 as string, ByVal s2 as string) as string
Dim i, n As Integer
Dim sbufer As string
OnError GoTo exit_err
n = len(s)
If n <= 1 Then exit function End If
For i = 2 to n
If Mid$(s, i, 1) = s1 Then sbufer = Mid$(s, 1, i-1)+s2+ Mid$(s, i, n) End If
next
If sbufer <> "" Then MyReplace = sbufer End If
exit_err:
End function
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
xax_nv



Зарегистрирован: 28.10.2011
Сообщения: 43
Откуда: г. Нижневартовск

СообщениеДобавлено: Ср Ноя 06, 2013 11:56 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Vovik, спасибо!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vovik



Зарегистрирован: 04.05.2008
Сообщения: 57

СообщениеДобавлено: Чт Ноя 07, 2013 1:39 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

функцию MyReplace необходимо доработать так:

function MyReplace(ByVal s as string, ByVal s1 as string, ByVal s2 as string) as string
Dim i, n As Integer
Dim sbufer As string
OnError GoTo exit_err
n = len(s)
If n <= 1 Then exit function End If
sbufer = s
For i = 2 to n
If Mid$(sbufer, i, 1) = s1 Then sbufer = Mid$(sbufer, 1, i-1)+s2+ Mid$(sbufer, i, n) End If
next
If sbufer <> "" Then MyReplace = sbufer End If
exit_err:
End function
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Lauren23



Зарегистрирован: 11.10.2014
Сообщения: 1

СообщениеДобавлено: Сб Окт 11, 2014 9:47 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Как в карте MapInfo при нажатии на кнопку мыши получиь (считать)
координату точки нажатия В ПИКСЕЛАХ относительно верхнего левого угла раб.области MfhInfo? Может быть какую нибудь DLL (в которой есть данная функция) подключить? Question Rolling Eyes :shock:
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Андрей Могильный



Зарегистрирован: 21.03.2006
Сообщения: 864

СообщениеДобавлено: Пн Окт 13, 2014 8:10 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Это точно функциями WinApi нужно делать. Поищите по форуму, по-моему уже что-то подобное детально обсуждали.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Nick4



Зарегистрирован: 15.10.2011
Сообщения: 95

СообщениеДобавлено: Пн Окт 13, 2014 11:28 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Через hook можно перехватить координаты мыши в пикселях. Есть dll.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Top.Mail.Ru