| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > КАК программно написать многострочным текстом?

КАК программно написать многострочным текстом?

Ответ
Поиск в этой теме
Непрочитано 10.10.2006, 11:46 #1
КАК программно написать многострочным текстом?
Александер
 
Регистрация: 15.06.2005
Сообщений: 184

КАК программно написать многострочным текстом?
точнее когда программно пишешь многострочным текстом то сам текст - является строкой (либо явно - "текст" либо указываем переменную типа строка - text, но прежде присваеваем ей некое значение, например "текст")
мне необходимо написать несколь строк, для этого я пишу, например:
(command "_.mtext" p5 "ВЫР" "ВЦ" "М" "Т" "" p6 tx1-1 tx1-2 tx1-3 "")

где р5,р6 точки вставки, а tx1-1 tx1-2 tx1-3 это переменные типа срока с нужными мне значениями
у меня есть переменная типа "список" - lst (со строками, например, "ааа" "ббб" "ввв" )
так вот и вопрос как такое можно сделать?
если писать:
(command "_.mtext" p5 "ВЫР" "ВЦ" "М" "Т" "" p6 lst "")
то имеем ошибку, т.к. переменная lst должна быть списком.
Просмотров: 5513
 
Непрочитано 10.10.2006, 12:05
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


Код:
[Выделить все]
(setq lst '("aa" "bb" "cc"))
(setq res nil) (foreach item lst (setq res (strcat (if (not res) "" res) " " item))) (VL-STRING-TRIM " "res)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.10.2006, 12:10
#3
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Код:
[Выделить все]
(setq lst '("ааа" "ббб" "ввв" ) )
(command "_.mtext" p5 "ВЫР" "ВЦ" "М" "Т" "" p6 (apply 'strcat (mapcar '(lambda(X)(strcat x "\n")) lst)) "")
Совет: вместо русских опций используй английские с _
Код:
[Выделить все]
(command "_.mtext" p5 "_J" "_TC" "_L" "_E" "" p6 (apply 'strcat (mapcar '(lambda(X)(strcat x "\n")) lst)) "")
VVA вне форума  
 
Автор темы   Непрочитано 10.10.2006, 13:45
#4
Александер


 
Регистрация: 15.06.2005
Сообщений: 184


спасибо, буду пробовать .
Александер вне форума  
 
Автор темы   Непрочитано 11.10.2006, 10:51
#5
Александер


 
Регистрация: 15.06.2005
Сообщений: 184


не прокатило :cry:
немного переделывать получал строку
"ааа\nббб\nввв"
все равно на экране пишет ааабббввв т.е. символ
\n не воспринимает...
Александер вне форума  
 
Непрочитано 11.10.2006, 11:39
#6
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


А что, должно? По-моему, разделителем строк в многострочнике выступает \P
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 11.10.2006, 13:52
#7
Александер


 
Регистрация: 15.06.2005
Сообщений: 184


ну если писать, например:
(setq res "ааабббввв")
(command "_.mtext" p5 "ВЫР" "ВЦ" "М" "Т" "" p6 res "\n" "123" "")
то выдает:
ааабббввв

123

пустая строка не случайна - это результат "\n", а если писать:
(command "_.mtext" p5 "ВЫР" "ВЦ" "М" "Т" "" p6 res "\p" "123" "")
то выдает:
ааабббввв
p
123
т.е. символ p - печатает, а символ n - нет,
выходит управляющий символ все же \n, или я не прав?
Александер вне форума  
 
Непрочитано 11.10.2006, 13:54
#8
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


Код:
[Выделить все]
Command: _-mtext Current text style:  "Standard"  Text height:  2.5
Specify first corner:
Specify opposite corner or [Height/Justify/Line spacing/Rotation/Style/Width]:
MText: aaa\Pbbb\Pccc
Обрати внимание на регистр управляющего символа!
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 11.10.2006, 14:57
#9
Александер


 
Регистрация: 15.06.2005
Сообщений: 184


на регистр я внимание обратил, согласен, если писать в самом редакторе среди текста символ \P , то строку переводит, а если программно писать, то получается:

в проге пишу:
(setq res "ааабббввв")
(command "_.mtext" p5 "ВЫР" "ВЦ" "М" "Т" "" p6 res "\" "123" "")

то выдает:
ааабббввв
P
123
а это:
Command: _-mtext Current text style: "Standard" Text height: 2.5
Specify first corner:
Specify opposite corner or [Height/Justify/Line spacing/Rotation/Style/Width]:
MText: aaa\Pbbb\Pccc

я так понимаю копия из командной строки?
если в ком. строке писать, то тоже все работает, а если в программе написать, то не хочет .
Александер вне форума  
 
Непрочитано 11.10.2006, 15:12
#10
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


Код:
[Выделить все]
(defun tt (/ start text)
  (setq text "aaa\\Pbbb\\Pccc")
  (command "_.-mtext"
           (setq start (getpoint))
           "_j"
           "_tc"
           "_l"
           "_e"
           ""
           (getcorner start "\nAnother point : ")
           text
           ""
           ) ;_ end of command
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 11.10.2006, 15:47
#11
Александер


 
Регистрация: 15.06.2005
Сообщений: 184


спасибо!!!
все получилось, заработался совсем, забыл что надо двойные \\ писать в программе чтобы получить \.
в этом все дело и было
Александер вне форума  
 
Непрочитано 11.10.2006, 16:19
#12
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Код:
[Выделить все]
(defun tt (/ start text) 
  (setq text "aaa\nbbb\nccc") 
  (command "_.-mtext" 
           (setq start (getpoint)) 
           "_j" 
           "_tc" 
           "_l" 
           "_e" 
           "" 
           (getcorner start "\nAnother point : ") 
           text 
           "" 
           ) ;_ end of command 
  ) ;_ end of defun
У меня тоже пишет с столбик Acad 2004 Rus 2006 En
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > КАК программно написать многострочным текстом?

Размещение рекламы