Как можно преобразовать текст вида A= 272°39' в 272.39?
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как можно преобразовать текст вида A= 272°39' в 272.39?

Как можно преобразовать текст вида A= 272°39' в 272.39?

Ответ
Поиск в этой теме
Непрочитано 19.08.2010, 15:57 #1
Как можно преобразовать текст вида A= 272°39' в 272.39?
mamuk
 
Сургут
Регистрация: 06.05.2010
Сообщений: 248

Доброго времени суток! задача заключается в следующем!
получаю запись вида "A= 272°39'" через:

(setq az( car (nentsel"\nУкажите азимут формата<A= 272°20'>: ")))
(setq az1 ( cdr ( assoc 1 (entget az)))
мне в и тоге надо получить "272.39"
я понимаю надо "A=(тут пробел) 272°39' " представить ввиде списка
только как не знаю. для того чтоб избавиться от A= и от символов "°" " ' "
пробовал чере cdr чтобы отбросить хотя бы "А=" для начала но символ " ' " не дает ни чего сделать! как можно представить A= 272°39' ввиде списка '(A= 272 ° 39 ')???
Просмотров: 3046
 
Непрочитано 19.08.2010, 16:25
#2
ERS10

Негр преклонных годов
 
Регистрация: 09.07.2010
Между третьим кольцом и МКАДом
Сообщений: 647


272°39' = 272.65°;
272.39° = 272°23'24"
272°39' # 272.39°
О чём речь? Нормальным русским человеческим языком объяснить можете? Тарабарщину не понимаю...

Последний раз редактировалось ERS10, 19.08.2010 в 16:40.
ERS10 вне форума  
 
Непрочитано 19.08.2010, 16:29
#3
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от mamuk Посмотреть сообщение
для того чтоб избавиться от A=
Имхо уже изначально нет смысла заставлять пользователя вводить "A=".
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 20.08.2010, 07:08
#4
mamuk


 
Регистрация: 06.05.2010
Сургут
Сообщений: 248


"A= 272°39'" '- это азимут, подписывается в другой программе(credo), и только в таком виде.
мне для расчетов из этой записи надо выдернуть отдельно 272 и отдельно 39!
mamuk вне форума  
 
Непрочитано 20.08.2010, 08:11
#5
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Код:
[Выделить все]
(defun cdl-string->list (s p / i)
;;; (cdl-string->list (getenv "ACAD") ";")
  (cond
	((setq i (vl-string-search p s))
		(cons (substr s 1 i) (cdl-string->list (substr s (+ (strlen p) i 1)) p))
	)
	(T (list s))
  )
)
надеюсь, разберешься сам ( s - строка, p - разделитель)

Последний раз редактировалось gomer, 20.08.2010 в 08:22.
gomer вне форума  
 
Непрочитано 20.08.2010, 08:18
#6
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


http://forum.dwg.ru/showthread.php?t=15661
Do$ вне форума  
 
Непрочитано 20.08.2010, 08:47
#7
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


По моему здесь хорошо сработает функция (angtof "xxxxxx" 1)
E-degtyarev вне форума  
 
Автор темы   Непрочитано 20.08.2010, 09:35
#8
mamuk


 
Регистрация: 06.05.2010
Сургут
Сообщений: 248


спасибо! gomer, а можно без vl функций, а то чей-то, я сними пока не знаком
mamuk вне форума  
 
Непрочитано 20.08.2010, 13:56
#9
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


Может быть я что-то не так понял, но все-же попробуй такой код:

Код:
[Выделить все]
(setq st_r     (substr "A= 272°20'" 4);избавляемся от "A= "
      st_r     (vl-string-subst "d" "°" st_r);заменяем "°" на "d"
      st_r_new (rtos (* (angtof st_r 1) (/ 180 pi)));пересчитываем минуты и преобразуем в строку
) 
(print st_r_new);для наглядности печать

Последний раз редактировалось E-degtyarev, 20.08.2010 в 14:10.
E-degtyarev вне форума  
 
Непрочитано 20.08.2010, 15:13
#10
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


E-degtyarev

Все это можно сделать проще
Код:
[Выделить все]
(setq a "A= 272°39'")
(angtos (angtof (substr a 4)) 0 2)
-> "272.65"
Но результат, зачем-то нужно получить такой
Цитата:
мне в и тоге надо получить "272.39"
CB вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как можно преобразовать текст вида A= 272°39' в 272.39?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли сплайн преобразовать в полилинию в AutoCAD2006? vn AutoCAD 28 06.11.2012 05:09
можно ли преобразовать сплайн в полилинию? Petrovichhh AutoCAD 14 19.10.2012 10:57
Мониторы LCD CRT Разное 94 17.06.2008 10:51
как можно однострочный текст перевести в многострочный? Александер AutoCAD 11 12.11.2005 15:17
А можно ли преобразовать линию в полилинию? VadimVG AutoCAD 4 23.08.2004 01:27