acad hispano
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

COPIAR CONTENIDO DE TEXTO EN MEMORIA TEMPORAL

3 participantes

Ir abajo

COPIAR CONTENIDO DE TEXTO EN MEMORIA TEMPORAL Empty COPIAR CONTENIDO DE TEXTO EN MEMORIA TEMPORAL

Mensaje por ronaldT Jue Oct 13, 2016 11:58 pm

Buenas tardes o días, me preguntaba si hay algún comando que permita copiar el contenido de un texto en la memoria temporal de la PC, de modo tal que con un ctrol+v se pueda pegar en un archivo distinto a CAD por ejemplo Word o Excel.

ronaldT

Mensajes : 54
Fecha de inscripción : 20/03/2016

Volver arriba Ir abajo

COPIAR CONTENIDO DE TEXTO EN MEMORIA TEMPORAL Empty Re: COPIAR CONTENIDO DE TEXTO EN MEMORIA TEMPORAL

Mensaje por bernie67 Vie Oct 14, 2016 2:05 am

Hay varios lisp que hacen eso.

(defun c:doc ()
(alert "Selecciona los textos a EXPORTAR")
(if (= 1 1)(progn (setq i 0 l_x nil l_y nil l_pos nil lista nil)(prompt "\n.......................")
(setq group (ssget (list (cons 0 "TEXT"))))
(if (/= group nil)(progn (setq ruta (getvar "DWGPREFIX"))
(setq ruta (getfiled "COMANDO:DOC - Escriba el Nombre del Archivo" ruta "doc" 1))
(if (= ruta nil)
(setq ruta (strcat (getvar "DWGPREFIX")(substr (getvar "DWGNAME") 1 (- (strlen (getvar "DWGNAME")) 3)) "doc")))
(setq f (open ruta "w"))(repeat (sslength group)(setq lista (append lista (list i)))
(setq i (+ i 1)))(setq i 0)(while (/= lista nil) (foreach temp lista (setq e_ana (ssname group temp))
(setq e_dat (entget e_ana))
(setq l_y (append l_y (list (cadr (cdr (assoc 10 e_dat)))))))
(setq y_max (apply 'max l_y))
(setq i 0)(foreach temp lista (setq e_ana (ssname group temp))
(setq e_dat (entget e_ana))
(setq yy (cadr (cdr (assoc 10 e_dat))))
(if (equal y_max yy 0.5)
(setq l_pos (append l_pos (list temp)))))
(setq l_x nil)(foreach temp l_pos (setq e_ana (ssname group temp))
(setq e_dat (entget e_ana))(setq l_x (append l_x (list (car (cdr (assoc 10 e_dat)))))))
(setq nl_pos nil)
(setq l_xx (vl-sort l_x '<))(foreach temp l_xx (setq nl_pos (append nl_pos (list (vl-position temp l_x)))))
(setq linea "")(foreach temp nl_pos (setq e_cad (cdr (assoc 1 (entget (ssname group (nth temp l_pos))))))
(setq linea (strcat linea e_cad "\t")))(write-line linea f)(foreach temp nl_pos (setq lista (vl-remove (nth temp l_pos) lista)))
(setq i 0 l_y nil l_x nil l_pos nil nl_pos nil))
(close f)
(setq e_cad nil group nil linea nil l_xx nil l_yy nil yy nil ruta nil i nil f nil))
(alert "No existen textos en la seleccion"))))(princ)
)
bernie67
bernie67

Mensajes : 98
Fecha de inscripción : 22/03/2016
Edad : 57
Localización : Bogota DC-Colombia

Volver arriba Ir abajo

COPIAR CONTENIDO DE TEXTO EN MEMORIA TEMPORAL Empty Re: COPIAR CONTENIDO DE TEXTO EN MEMORIA TEMPORAL

Mensaje por nolo Vie Oct 14, 2016 7:35 pm

Hay una función vlisp uperinteresante, que yo la tomé del Topoward en Hispacad para cargar texto en el portapapeles y es:
Código:
(defun 2clip(pasar)
;mardar el dato al portapapeles
; Original de Topoward
  (vlax-invoke
   (vlax-get
      (vlax-get
         (setq portapa (vlax-create-object "htmlfile"))
      'PARENTWINDOW)
   'CLIPBOARDDATA)
          'setdata
          "Text"
          pasar)
  (vlax-release-object portapa )
(alert (strcat "Los datos \n"pasar"\nse han cargado en el portapapeles" ))
)

Para tu caso, si lo que quieres son textos sencillos podrías utilizar esto (una vez cargado lo anterior, claro)

Código:
(defun c:t2c( / ss textos)
(vl-load-com);; si no cargaste antes el vlisp
(setq textos "")
(princ "\nseleccionar textos")
(if (setq ss (ssget '((0 . "TEXT"))))
 (progn
 (while (>(sslength ss)0)
 (setq textos (strcat textos (cdr (assoc 1 (entget (ssname ss 0)))) (chr 13)))
 (ssdel (ssname ss 0)ss )
 )
 (2clip textos)
 )
 (princ "\nNo se seleccionaron textos ...")
)
(princ)
)

Ojos:
Si quieres pasar números a excel, tendrás que unificar primero que el criterio de puntos y comas sea igual en los dos programas o montar una rutina que cambie puntos a comas.
Si la utilizas con mtext, estos llevan caracteres de control que se verán tal cual en donde los pegues
Al pegar en mi block de notas, no se porque no me respeta el caracter 13 como salto de línea (en otros pc si lo hace y no se porqué) pero en word y excel no pasa

Un saludo

nolo

Mensajes : 182
Fecha de inscripción : 17/03/2016

Volver arriba Ir abajo

COPIAR CONTENIDO DE TEXTO EN MEMORIA TEMPORAL Empty Re: COPIAR CONTENIDO DE TEXTO EN MEMORIA TEMPORAL

Mensaje por ronaldT Jue Oct 20, 2016 9:57 pm

Muchas gracias NOLO
era lo que estaba buscando gracias por su pronta respuesta...

ronaldT

Mensajes : 54
Fecha de inscripción : 20/03/2016

Volver arriba Ir abajo

COPIAR CONTENIDO DE TEXTO EN MEMORIA TEMPORAL Empty Re: COPIAR CONTENIDO DE TEXTO EN MEMORIA TEMPORAL

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.