Edicion de Notas

Ver el tema anterior Ver el tema siguiente Ir abajo

Edicion de Notas

Mensaje por amc.dicsac el Mar Nov 08, 2016 8:36 pm

Hola que tal nesecito su ayuda porfavor:

No sé cómo agregar el contenido de un edit_box y que aparece en el poppup_list

Código:
    ;; DCL Temporal ---> Lee Mac
    (setq BiblioElecVersion "3.3")
   
    (defun Biblock:GetSavePath ( / tmp )
        (cond     
            (  (setq tmp (getvar 'ROAMABLEROOTPREFIX))
                (strcat (vl-string-right-trim "\\" (vl-string-translate "/" "\\" tmp)) "\\Support")
            )
            (  (setq tmp (findfile "ACAD.pat"))
                (vl-string-right-trim "\\" (vl-string-translate "/" "\\" (vl-filename-directory tmp)))
            )
            (  (vl-string-right-trim "\\" (vl-filename-directory (vl-filename-mktemp))))
        )
    )
   
    (defun _ax:start ( key lst )
      (start_list key)
      (mapcar 'add_list lst)
      (end_list)
      lst
    )
   
    (defun c:L44 ( )
    (setq ListNotas '("Hello" "Thanks"))
   
    ;;----------Ruta temporal y configuración DCL ---------------------------------
    ;; Guardamos la ruta con la funcíon (NumInc:GetSavePath)
    ;; Reemplzar NumInc:GetSavePath --> Biblock:GetSavePath
    ;;-----------------------------------------------------------------------------
    (setq savepath (Biblock:GetSavePath))
    (setq dcl (strcat savepath "\\Biblioteca_Block" (vl-string-translate "." "-" BiblioElecVersion) ".dcl"))
    (setq des (open dcl "w"))
    (foreach line
    '( 
    "ListaFolder: dialog { label = \"Listado de carpetas:\"; width=50; "
    "  : edit_box {key = \"key_Notas\"; edit_width = 5; fixed_width = true;}"
    "  : button { label = \"&Add\"; mnemonic = \"A\"; key = \"key_Add\"; fixed_width = true; } "
    "spacer_1; "
    " :list_box { key = \"key_ListNotas\"; width=30; }"
    "  : button { label = \" &Cancelar \"; mnemonic = \"C\"; key = \"cancel\"; fixed_width = true; is_cancel = true;} "
    " }  "
    )
    (write-line line des))
    (progn (close des) (< 0 (setq dch (load_dialog dcl))))
    (if (not (new_dialog "ListaFolder" dch "" (cond (*screenpointlc*) ('(-1 -1)))))
    (progn
    (alert (strcat "\n**ERROR**"))
    (exit)))
   
   
    ;; Rellenar los valores del dcl
    (_ax:start "key_ListNotas" ListNotas)
   
    ;;----------------------------------------------------------------
    (action_tile "cancel" "(setq *screenpointlc* (done_dialog 1))")
    (setq ddiag (start_dialog))
    (princ)
    (if (= ddiag 1) (prompt "\nPrograma Cancelado..."))
    (setq dch (unload_dialog dch))
    (if (and dcl (findfile dcl))
    (vl-file-delete dcl))
    (if (< 0 dch) (unload_dialog dch))
    (setvar "cmdecho" 1)
    (princ))
   
avatar
amc.dicsac

Mensajes : 76
Fecha de inscripción : 17/03/2016
Edad : 26
Localización : Lima - Perú

Ver perfil de usuario http://axprogramlisp.blogspot.pe/

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por Dominguez el Miér Nov 09, 2016 6:30 pm

amc.dicsac escribió:No sé cómo agregar el contenido de un edit_box y que aparece en el poppup_list
Prueba esta modificacion y nos cuentas como funciona.
Un saludo
Código:

;;; oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
(defun Biblock:GetSavePath (/ tmp)
  (cond ((setq tmp (getvar 'ROAMABLEROOTPREFIX))
        (strcat (vl-string-right-trim "\\" (vl-string-translate "/" "\\" tmp)) "\\Support")
        )
        ((setq tmp (findfile "ACAD.pat"))
        (vl-string-right-trim "\\" (vl-string-translate "/" "\\" (vl-filename-directory tmp)))
        )
        ((vl-string-right-trim "\\" (vl-filename-directory (vl-filename-mktemp))))
  )
)
;;; oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
(defun _ax:start (key lst) (start_list key) (mapcar 'add_list lst) (end_list) lst)
;;; oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
(defun c:L44 (/ notas savepath dcl des dch *screenpointlc* ddiag)
  (setq notas '("Enero" "Febrero" "Marzo"))
  (setq savepath (Biblock:GetSavePath))
  (setq dcl (strcat savepath "\\Biblioteca.dcl"))
  (setq des (open dcl "w"))
  (foreach line
          '("lista:dialog{label=\"Listado de carpetas:\";width=50;:edit_box{key=\"nota\";edit_width=5;"
            "fixed_width=true;}:button{label=\"Add\";key=\"add\";fixed_width=true;}spacer_1;:list_box{"
            "key=\"notas\";width=30;}:button{label=\"Cancelar\";key=\"cancel\";fixed_width=true;is_cancel=true;}}"
            )
    (write-line line des)
  )
  (progn (close des) (< 0 (setq dch (load_dialog dcl))))
  (if (not (new_dialog "lista"
                      dch
                      ""
                      (cond (*screenpointlc*)
                            ('(-1 -1))
                      )
          )
      )
    (progn (alert (strcat "\n**ERROR**")) (exit))
  )
  (_ax:start "notas" notas)
  ;;solo tienes que poner esta action_tile
  (action_tile "add"
              "(setq notas (append notas (list (get_tile \"nota\")))) (_ax:start \"notas\" notas)"
  )
  (action_tile "cancel" "(setq *screenpointlc* (done_dialog 1))")
  (setq ddiag (start_dialog))
  (if (= ddiag 1)
    (prompt "\nPrograma Cancelado...")
  )
  (setq dch (unload_dialog dch))
  (if (and dcl (findfile dcl))
    (vl-file-delete dcl)
  )
  (if (< 0 dch)
    (unload_dialog dch)
  )
  (setvar "cmdecho" 1)
  (princ)
)
;;; oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
avatar
Dominguez

Mensajes : 50
Fecha de inscripción : 20/03/2016
Edad : 67
Localización : Zaragoza (España)

Ver perfil de usuario

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por amc.dicsac el Miér Nov 09, 2016 7:40 pm

Muchas gracias maestro Dominguez, yo por mi cuenta busque algo que me permitiera almacenar los textos que voy ingresando y al parecer llegue a solucionar ese problema, pero lamentablemente solamente almacena los textos temporalmente =( por lo que decidi usar las funciones "vl-registry-read y vl-registry-write" pero aun no logro que se almacene en el sistema, espero que alguien me pueda ayudar a solucionar este problema.

Gracias

Código:
    ;; DCL Temporal ---> Lee Mac
    (setq BiblioElecVersion "3.3")
   
    (defun Biblock:GetSavePath ( / tmp )
        (cond     
            (  (setq tmp (getvar 'ROAMABLEROOTPREFIX))
                (strcat (vl-string-right-trim "\\" (vl-string-translate "/" "\\" tmp)) "\\Support")
            )
            (  (setq tmp (findfile "ACAD.pat"))
                (vl-string-right-trim "\\" (vl-string-translate "/" "\\" (vl-filename-directory tmp)))
            )
            (  (vl-string-right-trim "\\" (vl-filename-directory (vl-filename-mktemp))))
        )
    )
   
    (defun _ax:start ( key lst )
      (start_list key)
      (mapcar 'add_list lst)
      (end_list)
      lst
    )

  ;; Código ---> kpblc
    (defun _kpblc-list-add-or-subst (lst key value)
    (if (not value)
    (vl-remove-if (function (lambda (x) (= (car x) key))) lst)
      (if (cdr (assoc key lst))
        (subst (cons key value) (assoc key lst) lst)
        (cons (cons key value)
              (vl-remove-if (function (lambda (x) (= (car x) key))
                                      )
                            lst
                            )
              )
        )
      )
    )

  ;; Código ---> kpblc
  (defun fun_callback (key value ref-list)
    (cond ((= key "key_Add")
    (set ref-list
      (_kpblc-list-add-or-subst (eval ref-list)
                                          "key_ListNotas"
                                          (append (cdr (assoc "key_ListNotas" (eval ref-list))) (list (get_tile "key_Notas")))
                                          )
                ) ;_ end of set
          (start_list "key_ListNotas" 3)
          (mapcar (function add_list) (cdr (assoc "key_ListNotas" (eval ref-list))))
          (end_list)
          )
          )
    )

    (defun StringListRegistryWrite (regKey valName lst)
  (read
    (vl-registry-write
      regKey
      valName
      (if lst
        (vl-prin1-to-string lst)
        ""
      )
    )
  )
)

(defun StringListRegistryRead (regKey valName)
  (read
    (cond
      ((vl-registry-read regKey valName))
      ("")
    )
  )
)

   
    (defun c:L44 (/ Maestrokey2 )
    (vl-load-com)
  (setq Maestrokey22 (StringListRegistryRead "HKEY_CURRENT_USER\\SOFTWARE\\Maestrokey2" "Maestrokey22"))
    ;;----------Ruta temporal y configuración DCL ---------------------------------
    ;; Guardamos la ruta con la funcíon (NumInc:GetSavePath)
    ;; Reemplzar NumInc:GetSavePath --> Biblock:GetSavePath
    ;;-----------------------------------------------------------------------------
    (setq savepath (Biblock:GetSavePath))
    (setq dcl (strcat savepath "\\Biblioteca_Block" (vl-string-translate "." "-" BiblioElecVersion) ".dcl"))
    (setq des (open dcl "w"))
    (foreach line
    '( 
    "ListaFolder: dialog { label = \"Listado de carpetas:\"; width=50; "
    "  : edit_box {key = \"key_Notas\"; edit_width = 5; fixed_width = true;}"
    "  : button { label = \"&Add\"; mnemonic = \"A\"; key = \"key_Add\"; fixed_width = true; } "
    "spacer_1; "
    " :list_box { key = \"key_ListNotas\"; width=30; }"
    "  : button { label = \" &Cancelar \"; mnemonic = \"C\"; key = \"cancel\"; fixed_width = true; is_cancel = true;} "
    " }  "
    )
    (write-line line des))
    (progn (close des) (< 0 (setq dch (load_dialog dcl))))
    (if (not (new_dialog "ListaFolder" dch  "(fun_callback $key $value 'dcl_lst)" (cond (*screenpointlc*) ('(-1 -1)))))
    (progn
    (alert "\n**ERROR**")
    (exit)))
 

    ;;----------------------------------------------------------------
    (action_tile "cancel" "(setq *screenpointlc* (done_dialog 1))")

    (_ax:start "key_ListNotas" (StringListRegistryWrite "HKEY_CURRENT_USER\\SOFTWARE\\Maestrokey2" "Maestrokey22" (cdr (assoc "key_ListNotas" dcl_lst))))
    (setq ddiag (start_dialog))
    (princ)
    (if (= ddiag 1) (prompt "\nPrograma Cancelado..."))
    (setq dch (unload_dialog dch))
    (if (and dcl (findfile dcl))
    (vl-file-delete dcl))
    (if (< 0 dch) (unload_dialog dch))
    (setvar "cmdecho" 1)
    (princ))
avatar
amc.dicsac

Mensajes : 76
Fecha de inscripción : 17/03/2016
Edad : 26
Localización : Lima - Perú

Ver perfil de usuario http://axprogramlisp.blogspot.pe/

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por Dominguez el Jue Nov 10, 2016 11:19 pm

Prueba esta rutina y modificala para tu uso, haber si te sirve.
Código:

 ; Conserva los valores despues de cerrar AutoCAD y/ó cargue un dibujo diferente.
;;;oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
(defun dialog_test ()
  (setq file (vl-filename-mktemp "dcl.dcl"))
  (setq indi (open file "W"))
  (write-line
      "temp:dialog{label=\"Defectos del Diálogo\";:row{:toggle{key=\"tog1\";label=\"On o Off\";}
:toggle{key=\"tog2\";label=\"Izquierda o Derecha\";}}spacer;:edit_box{key=\"eb2\";label=\"Ingrese un par de letras\";}
spacer;:edit_box{key=\"eb1\";label=\"Valor del desplazamiento\";edit_width=6;}:slider{key=\"mislider\";
max_value=100;min_value=0;value=\"50\";small_increment=2;big_increment=5;}spacer;ok_cancel;}"
      indi
  )
  (close indi)
)
;;;oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
(defun c:test (/ file indi lngth letras toggle1 toggle2 clik)
  (setq lngth (getcfg "AppData/CadLDG/defecto1"))
  (if (= lngth nil)
      (progn (setcfg "AppData/CadLDG/defecto1" "50.0") (setq lngth (getcfg "AppData/CadLDG/defecto1")))
  )
  (setq letras (getcfg "AppData/CadLDG/defecto2"))
  (if (= letras nil)
      (progn (setcfg "AppData/CadLDG/defecto2" "ABC") (setq letras (getcfg "AppData/CadLDG/defecto2")))
  )
  (setq toggle1 (getcfg "AppData/CadLDG/defecto3"))
  (if (= toggle1 nil)
      (progn (setcfg "AppData/CadLDG/defecto3" "1") (setq toggle1 (getcfg "AppData/CadLDG/defecto3")))
  )
  (setq toggle2 (getcfg "AppData/CadLDG/defecto4"))
  (if (= toggle2 nil)
      (progn (setcfg "AppData/CadLDG/defecto4" "0") (setq toggle2 (getcfg "AppData/CadLDG/defecto4")))
  )
  (dialog_test)
  (setq indi (load_dialog file))
  (new_dialog "temp" indi)
  (set_tile "tog1" toggle1)
  (set_tile "tog2" toggle2)
  (set_tile "eb2" letras)
  (set_tile "eb1" lngth)
  (set_tile "mislider" lngth)
  (action_tile "mislider" "(slider_action $value $reason)")
  (action_tile "eb1" "(ebox_action $value $reason)")
  (defun slider_action (val por)
      (if (or (= por 2) (= por 1))
        (set_tile "eb1" val)
      )
  )
  (defun ebox_action (val por)
      (if (or (= por 2) (= por 1))
        (set_tile "mislider" val)
      )
  )
  (action_tile "tog1" "(setq toggle1 $value)")
  (action_tile "tog2" "(setq toggle2 $value)")
  (action_tile
      "accept"
      "(progn (setq lngth (get_tile \"eb1\"))(setq letras (get_tile \"eb2\"))(done_dialog) (setq clik t))"
  )
  (action_tile "cancel" "(done_dialog) (setq clik nil)")
  (vl-file-delete file)
  (start_dialog)
  (unload_dialog indi)
  (if clik
      (progn (setcfg "AppData/CadLDG/defecto1" lngth)
            (setcfg "AppData/CadLDG/defecto2" letras)
            (setcfg "AppData/CadLDG/defecto3" toggle1)
            (setcfg "AppData/CadLDG/defecto4" toggle2)
            (alert (strcat "Usted ingreso: " lngth " y " letras))
      )
  )
  (prin1)
)
;;;oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
Un saludo
avatar
Dominguez

Mensajes : 50
Fecha de inscripción : 20/03/2016
Edad : 67
Localización : Zaragoza (España)

Ver perfil de usuario

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por saulo2016 el Vie Nov 11, 2016 11:49 pm

Hola Maestro Dominguez.

Este Codigo que esta facilitando esta bien interesante, pero creo que mas utilidad se le daria si los textos fuesen acumulativos, como el famoso TNOTE.VLX que en él se van agregando notas y las voy salvando para la "posteridad", no importa que no sean insertables los textos, pero como para llevar un registro de todos los textos que voy agregando eso seria muy bueno.




Saludos
avatar
saulo2016

Mensajes : 88
Fecha de inscripción : 17/03/2016
Edad : 51
Localización : Monterrey, Nuevo León, Mexico

Ver perfil de usuario

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por Dominguez el Sáb Nov 12, 2016 8:43 pm

Bueno pues aqui teneis otra solucion, que consiste en un fichero de texto (notas.txt) que se puede editar, y sirve de base para añadir notas.
podeis bajarlo de dropbox
https://www.dropbox.com/s/pxsovux1887kkv5/ADN.VLX?dl=0
https://www.dropbox.com/s/2k4t010yft055yx/ADN.txt?dl=0

Un saludo


Última edición por Dominguez el Vie Nov 18, 2016 6:21 pm, editado 2 veces
avatar
Dominguez

Mensajes : 50
Fecha de inscripción : 20/03/2016
Edad : 67
Localización : Zaragoza (España)

Ver perfil de usuario

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por saulo2016 el Lun Nov 14, 2016 2:54 pm

Gracias Maestro por su respuesta....pero no he podido desccargar los archivos del DROPBOX.....pues me muestra esto, aunque yo ya estoy registrado solo veo esto.



No se si pudiera hacermelos llegar por otro medio???


Saludos Maestro Dominguez
avatar
saulo2016

Mensajes : 88
Fecha de inscripción : 17/03/2016
Edad : 51
Localización : Monterrey, Nuevo León, Mexico

Ver perfil de usuario

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por Dominguez el Lun Nov 14, 2016 5:33 pm

saulo2016 escribió:Gracias Maestro por su respuesta....pero no he podido desccargar los archivos del DROPBOX.....pues me muestra esto, aunque yo ya estoy registrado solo veo esto.

Saludos Maestro Dominguez
Prueba estos enlaces haber si te funcionan
https://www.dropbox.com/s/pxsovux1887kkv5/ADN.VLX?dl=0
https://www.dropbox.com/s/2k4t010yft055yx/ADN.txt?dl=0
Saludos


Última edición por Dominguez el Vie Nov 18, 2016 6:23 pm, editado 1 vez
avatar
Dominguez

Mensajes : 50
Fecha de inscripción : 20/03/2016
Edad : 67
Localización : Zaragoza (España)

Ver perfil de usuario

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por saulo2016 el Lun Nov 14, 2016 6:06 pm

Excelente Maestro......una vez mas me salvo el dia!!!!

Esto era lo que yo necesitaba, le vuelvo agradecer....y le ruego que no se pierda mucho tiempo pues hay quienes necesitamos de su apoyo y aporte.....



Gracias
avatar
saulo2016

Mensajes : 88
Fecha de inscripción : 17/03/2016
Edad : 51
Localización : Monterrey, Nuevo León, Mexico

Ver perfil de usuario

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por Dominguez el Lun Nov 14, 2016 8:12 pm

saulo2016 escribió:Excelente Maestro......una vez mas me salvo el dia!!!!

Esto era lo que yo necesitaba, le vuelvo agradecer....y le ruego que no se pierda mucho tiempo pues hay quienes necesitamos de su apoyo y aporte.....



Gracias
Celebro que te sirva
Un saludo
avatar
Dominguez

Mensajes : 50
Fecha de inscripción : 20/03/2016
Edad : 67
Localización : Zaragoza (España)

Ver perfil de usuario

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por saulo2016 el Lun Nov 14, 2016 9:18 pm

Solo una cosa mas Maestro......¿acaso sera posible tener el codigo en LSP para modificar un poco el ancho del cuadro???.....pues lo que estoy haciendo es que estoy almacenando descripciones de texto un poco largas y necesito tener todo el renglon visible y asi poder llevar un registro de mis actividades diarias durante todo el mes, para poder hacer mis reportes de trabajos.


No se preocupe si esto de obtener el LSP no se puede....yo le entiendo...







Saludos
avatar
saulo2016

Mensajes : 88
Fecha de inscripción : 17/03/2016
Edad : 51
Localización : Monterrey, Nuevo León, Mexico

Ver perfil de usuario

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por Dominguez el Mar Nov 15, 2016 12:45 pm

saulo2016 escribió:¿acaso sera posible tener el codigo en LSP para modificar un poco el ancho del cuadro???
No se preocupe si esto de obtener el LSP no se puede....yo le entiendo...
Saludos
De momento conformate con que yo te lo ponga a 100 caracteres de anchura, si necesitas mas lo dices.
https://www.dropbox.com/s/pxsovux1887kkv5/ADN.VLX?dl=0
https://www.dropbox.com/s/2k4t010yft055yx/ADN.txt?dl=0
Tambien tengo que decirte que las notas las muestra en orden alfabetico, pero puede hacerse que las muestre tal como se van ingresando.
Un saludo


Última edición por Dominguez el Vie Nov 18, 2016 6:24 pm, editado 1 vez
avatar
Dominguez

Mensajes : 50
Fecha de inscripción : 20/03/2016
Edad : 67
Localización : Zaragoza (España)

Ver perfil de usuario

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por saulo2016 el Mar Nov 15, 2016 2:36 pm

Muchas gracias Maestro.......esto es mas que suficiente!!!!

Le debo otra mas .....




Que tenga un buen dia


Saludos
avatar
saulo2016

Mensajes : 88
Fecha de inscripción : 17/03/2016
Edad : 51
Localización : Monterrey, Nuevo León, Mexico

Ver perfil de usuario

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por saulo2016 el Mar Nov 15, 2016 2:50 pm

Maestro siento mucho tener que informarle que este segundo VLX no me funciono, hace como que va abrir y se cierra inmediatamente.....
avatar
saulo2016

Mensajes : 88
Fecha de inscripción : 17/03/2016
Edad : 51
Localización : Monterrey, Nuevo León, Mexico

Ver perfil de usuario

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por Dominguez el Mar Nov 15, 2016 3:12 pm

saulo2016 escribió:Maestro siento mucho tener que informarle que este segundo VLX no me funciono, hace como que va abrir y se cierra inmediatamente.....
https://www.dropbox.com/s/pxsovux1887kkv5/ADN.VLX?dl=0
https://www.dropbox.com/s/2k4t010yft055yx/ADN.txt?dl=0
Supongo que te devolvera algun error


Última edición por Dominguez el Vie Nov 18, 2016 6:26 pm, editado 1 vez
avatar
Dominguez

Mensajes : 50
Fecha de inscripción : 20/03/2016
Edad : 67
Localización : Zaragoza (España)

Ver perfil de usuario

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por saulo2016 el Mar Nov 15, 2016 3:43 pm

Maestro Dominguez, me dá pena con usted pero resulta que si me muestra el cuadro de dialogo pero no carga el archivo de texto y se queda congelado el cuadro....Mire Maestro mejor ya no lo incomodo, me voy a quedar con la primera version esa funciona perfectamente bien, mejor voy a acortar mis descripciones y me quedo con la primera....

Y le vuelvo a ratificar mi agradecimiento, es una excelente rutina que me esta sacando de apuros, pues me esta ayudando a llevar un registro de actividades, y asi no olvido lo que estoy haciendo a diario....


Maestro que este excelentemente bien



Saludos
avatar
saulo2016

Mensajes : 88
Fecha de inscripción : 17/03/2016
Edad : 51
Localización : Monterrey, Nuevo León, Mexico

Ver perfil de usuario

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por Dominguez el Mar Nov 15, 2016 9:55 pm

Mira Saulo2016:
No me incomodas para nada, si las cosas no funcionan, debemos de arreglarlas, ademas creo que se cual es el error, despues del primer envio, cambie el nombre del fichero de texto, que ahora se llama ADN.TXT, asi que le cambias el nombre y ya esta,
Un saludo y perdoname tu a mi.
avatar
Dominguez

Mensajes : 50
Fecha de inscripción : 20/03/2016
Edad : 67
Localización : Zaragoza (España)

Ver perfil de usuario

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por saulo2016 el Mar Nov 15, 2016 10:56 pm

Quedo perfecto.....Gracias Maestro.







Saludos
avatar
saulo2016

Mensajes : 88
Fecha de inscripción : 17/03/2016
Edad : 51
Localización : Monterrey, Nuevo León, Mexico

Ver perfil de usuario

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por amc.dicsac el Mar Nov 15, 2016 11:59 pm

Maestro "Dominguez" recurro a su ayuda, cambie mi codigo ahora lo que estroy haciendo es que lea archivos .txt ubicados en una carpeta funciona bien aprentemente pero el problema es cuando quiero agregar un contenido, no se llega actualizar.

Código:

;; DCL Temporal ---> Lee Mac
;; Version del DCL Temporal 
(setq EditarNotasVersion "2.0")

;; Ruta del DCL Temporal ---> Lee Mac
(defun EditarNotas:GetSavePath ( / tmp )
    (cond     
        (  (setq tmp (getvar 'ROAMABLEROOTPREFIX))
            (strcat (vl-string-right-trim "\\" (vl-string-translate "/" "\\" tmp)) "\\Support")
        )
        (  (setq tmp (findfile "ACAD.pat"))
            (vl-string-right-trim "\\" (vl-string-translate "/" "\\" (vl-filename-directory tmp)))
        )
        (  (vl-string-right-trim "\\" (vl-filename-directory (vl-filename-mktemp))))
    )
)

;; Agregar Listado ---> Lee Mac
(defun _ax:start ( key lst )
  (start_list key)
  (mapcar 'add_list lst)
  (end_list)
  lst
)

;; Agregar Lista de layer a Poppup_List ---> Lee Mac
(defun lislayerdoc ( / d l r )
(while (setq d (tblnext "layer" (not d)))
(if (and (zerop (logand 21 (cdr (assoc 70 d))))
    (< 0 (cdr (assoc 62 d)))
    (/= "defpoints" (strcase (setq l (cdr (assoc 2 d))) t)))
(setq r (cons l r))))
(vl-sort r '<))


(defun NumInc:GetTableItems ( table / a b )
(while (setq a (tblnext table (null a)))
(if (null (wcmatch (cdr (assoc 2 a)) "`**,*|*"))
(setq b (cons (cdr (assoc 2 a)) b))))
(acad_strlsort b))


;;--------------------------------------------------------------------;;
;; 2ap_Read_Folder ---> AX:ProgramLisp                                ;;
;; (setq PathFolder "D:/Carpeta_Nota/")                              ;;
;; (2ap_Read_Folder "Archivos_Notas/")                                ;;
;;                                                                    ;;
;; Indicaciones de uso:                                              ;;
;; Lista archivos con extension *.txt dentro de una carpeta defecto  ;;
;;--------------------------------------------------------------------;;
(defun 2ap_Read_Folder (PathFile / Listado Dir)
(if (setq Dir (strcat PathFolder PathFile))
(setq Listado (vl-directory-files (strcat Dir "\\") "*.txt" 1)
      Listado (mapcar (function vl-filename-base) Listado))
      )
 Listado
)


;;--------------------------------------------------------------------;;
;; 2ap_Read_File ---> AX:ProgramLisp                                  ;;
;; (setq PathFile (2ap_Read_File "D:/NOTAS.txt"))                    ;;
;;                                                                    ;;
;; Indicaciones de uso:                                              ;;
;; Configurar una lista vacía (Lista)                                ;;
;; Abra el archivo de texto "Generales.txt"                          ;;
;; Saltamos la primera linea (read-line Path)                        ;;
;; Leer las líneas de datos en el archivo de texto (read-line Path)  ;;
;; Añadir los datos de la lista                                      ;;
;; Cerramos el archivo *.txt                                          ;;
;;--------------------------------------------------------------------;;
(defun 2ap_Read_File (File / Lista ReadLista Path)
(if (and (findfile File) (setq Path (open File "r")))
(progn
(read-line Path)
(while (setq ReadLista (read-line Path))
      (setq Lista (append Lista (list ReadLista))))
      (close Path))
  )
  Lista
)

(defun 2ap_Write_File ( File AddTxt / Path )
(setq Path (open File "a"))
(write-line AddTxt Path)
(close Path)
(C:E2))

(defun c:E2 (/ userdicsac)

(setq userdicsac (strcase (getvar "LOGINNAME")))
;;----- Ruta para subfuncion (2ap_Read_Folder)  ------;;
(setq PathFolder "D:/AxProgramLisp/2ap_Soportes/")

;;----------Ruta temporal y configuración DCL ---------------------------------
;;Guardamos la ruta con la funcíon (EditarNotas:GetSavePath)
;;-----------------------------------------------------------------------------
(setq savepath (EditarNotas:GetSavePath))
(setq dcl (strcat savepath "\\Edicion_Notas" (vl-string-translate "." "-" EditarNotasVersion) ".dcl"))
(setq des (open dcl "w"))
(foreach line
'(
 "img16 : image"
 "{"
 "    fixed_width = true;"
 "    fixed_height = true;"
 "    width = 2.8;"
 "    aspect_ratio = 1.0;"
 "}"
 "img16b : image_button"
 "{"
 "    fixed_width = true;"
 "    fixed_height = true;"
 "    width = 2.8;"
 "    aspect_ratio = 1.0;"
 "}"
 "EditNota : dialog { label = \"EditNotes ----> Versión 3.1\";"
 "initial_focus=\"bloqlist1\";"
 "spacer_1;"
 " : row {"
 " : edit_box { key = \"keycontenido2\"; edit_width=48; fixed_width = true; is_enabled = true ;}"
 " : button { label = \">> &Agregar\"; mnemonic = \"A\"; key = \"key_Agregar\"; width =15; fixed_width = true;}"
 "  spacer_1; "
 " } "
 " spacer_1; "
 " : row {  children_alignment = centered; "
 " : list_box { width =50; label = \"Nota&s\"; key = \"key_Notas\"; mnemonic = \"s\"; allow_accept = true; height =30; value = \"1\"; multiple_select = false; fixed_width = true; } "
 " spacer_0;"
 " : column { "
 " : boxed_column { label = \"Opciones\"; width = 10; "
 " : row {"
 " : text  { label = \">> Guardar Selección\";} "
 " : img16b { key = \"w1\";}"
 " } "
 " : text  { label = \"-----------------------\"; alignment = centered; fixed_width_font = true;} "
 " : row { "
 " : text  { label = \">> Modificar Base datos\";}"
 " : img16b { key = \"w2\";} "
 " } "
 " spacer_1; "
 " } "
 " spacer_1; "
 " : column { "
 " : boxed_column { label = \"Edición de Texto\"; "
 " : paragraph { "
 "        : text_part  { label = \"1:20 = 0.04 -- 1:200 = 0.40\";} "
 "        : text_part  { label = \"1:25 = 0.05 -- 1:250 = 0.50\";} "
 "        : text_part  { label = \"1:50 = 0.10 -- 1:100 = 0.20\";} "
 "        : text_part  { label = \"1:75 = 0.15 -- 1:125 = 0.25\";} "
 " } "
 " : text  { label = \"Tamaño:\";}"
 " : row {"
 " : img16 { key = \"w3\";}"
 " : edit_box { key = \"key_escala\"; fixed_width = false; is_enabled = true;}"
 " } "
 " : spacer { height=0.1;} "
 " : text  { label = \"Layers:\"; } "
 " : row { "
 " : img16 { key = \"w4\";} "
 " : popup_list { key = \"listcapas\"; value = \"1\"; is_enabled = true ; } "
  " : popup_list { key = \"listfoldertxt\"; value = \"1\"; is_enabled = true ; } "
 " } "
 " : spacer { height=0.1;} "
 " : text  { label = \"Style:\";} "
 " : row { "
 " : img16 { key = \"w5\";} "
 " : popup_list { key = \"listcapas2\"; value = \"1\"; is_enabled = true; } "
 " } "
 " spacer_1; "
 " } "
 " } "
 " spacer_1; "
 " : column { "
 " : boxed_column { label = \"Acción\";  width = 10; "
 " : button { label = \"&Reemplazar.\"; mnemonic = \"R\"; key = \"accept\"; width =10; is_default = true; } "
 " : button { label = \"&Texto\"; mnemonic = \"T\"; key = \"key_texto\"; width =10;} "
 " : button { label = \"Texto &Multiple\"; mnemonic = \"M\"; key = \"key_mtexto\"; width =10;} "
 " : button { label = \"Act&ualizar\"; mnemonic = \"u\"; key = \"key_updata\"; width =10;}  "
 " } "
 " } "
 " spacer_1; "
 " } "
 " } "
 " spacer_1; "
 " : row { width = 5; fixed_width = true; alignment = left; "
 " : text  {label = \"Copyright (c)  :: EditNotas | Versión 3.1 | 2016 ::\"; } "
 " : button { label = \" &Cancelar \"; mnemonic = \"C\"; key = \"cancel\"; fixed_width = true; is_cancel = true;} "
 " : button { label = \"**Blogger**\"; key = \"abortar\"; fixed_width = true;} "
 " } "
 " } "
 )
(write-line line des))
(progn (close des) (< 0 (setq dch (load_dialog dcl))))
(if (not (new_dialog "EditNota" dch "" (cond (*screenpointEditNota*) ('(-1 -1)))))
(progn
(alert (strcat "\n                  **ERROR**  [ Formato ##001--> Dcl incompatible ]    "
              "\n--------------------------------------------------------------------------------"
              "\nUsuario:  " userdicsac "  lamentamos este inconveniente porfavor comunicate via"
              "\nemail con el admin [ alexander.castro.17@outlook.es ]"
              "\n"
              "\nAtte. Area de soporte de  AX:ProgramLisp."))
(exit)))

(if (null *ListFolderTxt*) (setq *ListFolderTxt* "0"))

(if (null *opcion8*) (setq *opcion8* "0"))

(setq PathFile (strcat PathFolder "Archivos_Notas/"))
(setq ListFolderTxt (2ap_Read_Folder "Archivos_Notas"))
(setq f1 "1-Generales")
(if (or (null bloList) (null (listp bloList))) (setq bloList (2ap_Read_File (strcat PathFile f1 ".txt"))) )
(setq bloqxlist (nth (atoi *opcion8*) bloList))
 

;;--------------------------- NumInc:GetTableItems -------------------------------------;;
;; Obtenemos el listado de capas en el dibujo (NumInc:GetTableItems "layer")            ;;
;; Obtenemos el listado de estilos de textos (NumInc:GetTableItems "style")            ;;
;;--------------------------------------------------------------------------------------;;
(setq ListLayer (lislayerdoc))
(setq ListStyle (NumInc:GetTableItems "style"))


;;--------------------------- _addlist -----------------------------------------;;
;; Agregamos la lista con su propio "key"                                      ;;
;;------------------------------------------------------------------------------;;
(_ax:start "listfoldertxt" ListFolderTxt)
(set_tile "listfoldertxt" *ListFolderTxt*)
(_ax:start "key_Notas" bloList)
(_ax:start "listcapas" ListLayer)
(_ax:start "listcapas2" ListStyle)

;;--------------------------- set_tile / action_tile "infolist"-----------------------------------------
;; Definimos la lista de archivos en la carpte previamente especificada
;; para guardarlo en la varibale *opcion2*
;;------------------------------------------------------------------------------------------------------

(action_tile "listfoldertxt"
(strcat
"(_ax:start \"key_Notas\" (setq bloList (2ap_Read_File (setq Ruta3 (strcat PathFile (nth (atoi (setq *ListFolderTxt* $value)) ListFolderTxt) \".txt\")))))" ;;$value
"(set_tile \"listfoldertxt\" *ListFolderTxt*)"))
 
;;--------------------------- set_tile / action_tile "bloqlist"-----------------------------------------
;; Definimos la lista de bloques dependiento de la lista .txt seleccionada previamente
;; para guardarlo en la varibale *opcion1*
;;------------------------------------------------------------------------------------------------------
 
(set_tile "key_Notas" *opcion8*)   
(action_tile "key_Notas" "(setq *opcion8* $value)")


;--------------------------- set_tile / action_tile "layer" -------------------------------
;;Definimos capa principal para los textos a insertar, previamente la capa seleccionada
;;se guardara en una variable
;;------------------------------------------------------------------------------------------
(set_tile "listcapas" (itoa (cond ((vl-position listcapas ListLayer)) ((vl-position (setq listcapas (getvar 'CLAYER)) ListLayer)))))
(action_tile "listcapas" "(setq listcapas (nth (atoi $value) ListLayer))") 
;;--------------------------- set_tile / action_tile "style"-----------------------------------------
;;Definimos estilo principal para los textos a insertar, previamente el estilo seleccionado
;;se guardara en una variable
;;---------------------------------------------------------------------------------------------------   
(set_tile "listcapas2" (itoa (cond ((vl-position listcapas2 ListStyle)) ((vl-position (setq listcapas2 (getvar 'TEXTSTYLE)) ListStyle))))) 
(action_tile "listcapas2" "(setq listcapas2 (nth (atoi $value) ListStyle))")

;;---------------------------------------------------------------------------------------------------
(action_tile "cancel" "(setq *screenpointEditNota* (done_dialog 1))")
(action_tile "accept" "(setq artec (nth (atoi (get_tile \"key_Notas\")) bloList)) (setq *screenpointEditNota* (done_dialog 2)) ")
(action_tile "key_Agregar"
  (strcat
  "(setq *keycontenido2* (get_tile \"keycontenido2\"))"
    "(setq *screenpointEditNota* (done_dialog 7))"
  ))

(mode_tile "keycontenido2" 2)     
(setq ddiag (start_dialog))
(princ)
(if (= ddiag 1) (prompt "\n**Cancel**"))
(if (= ddiag 2) (AX:ReempText))   
(if (= ddiag 7) (2ap_Write_File Ruta3 (strcat *keycontenido2*)))    
(setq dch (unload_dialog dch))
(if (and dcl (findfile dcl))
(vl-file-delete dcl))
(if (< 0 dch) (unload_dialog dch))
(setvar "cmdecho" 1)
(princ))

(defun AX:ReempText ()
(setvar "cmdecho" 0)
(setq conj (ssget "_:L" '((0 . "TEXT,MTEXT,ATTDEF")))) 
(setq nums (sslength conj))
(setq n 0)
(repeat nums
(setq nt (ssname conj n))
(setq listNueva (subst (cons 1 artec)(assoc 1 (entget nt))(entget nt)))
(entmod listNueva)
(setq n (1+ n)))
(setvar "cmdecho" 1)
(princ))
avatar
amc.dicsac

Mensajes : 76
Fecha de inscripción : 17/03/2016
Edad : 26
Localización : Lima - Perú

Ver perfil de usuario http://axprogramlisp.blogspot.pe/

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por Dominguez el Miér Nov 16, 2016 8:05 pm

amc.dicsac escribió:ahora lo que estoy haciendo es que lea archivos .txt ubicados en una carpeta funciona bien aprentemente pero el problema es cuando quiero agregar un contenido, no se llega actualizar.
Siento decirte que ese fichero es tan retorcido que me llevaria un monton de horas corregirlo, primero por que busca en una serie de carpetas que en mi PC no existen y otras cosas por las que no me funciona en mi PC,
Si me cuentas cual es tu necesidad, si tengo tiempo podria crearte un programa hecho a mi forma, y me costaria menos tiempo que corregir el de Lee Mac.
Un saludo
avatar
Dominguez

Mensajes : 50
Fecha de inscripción : 20/03/2016
Edad : 67
Localización : Zaragoza (España)

Ver perfil de usuario

Volver arriba Ir abajo

Re: Edicion de Notas

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

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