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

Ordenar lista

4 participantes

Ir abajo

Ordenar lista Empty Ordenar lista

Mensaje por carlosmgilp Vie Jun 24, 2016 9:28 pm

Hola muchachos como están.

Disculpen quien me enseña a crear una función para ordenar esta lista.
La finalidad es ordenarla de forma ascendente (Desde la A hasta la Z)

Esta es la lista que tengo

Código:
(list '("cursorsize" 100) '("delobj" 1) '("facetres" 10) '("imageframe" 2) '("isolines" 8) '("mirrtext" 0) '("mtextcolumn" 0) '("dispsilh" 1) '("peditaccept" 1) '("splinesegs" 16) '("surftab1" 12)
      '("surftab2" 12) '("shortcutmenu" 27) '("selectionannodisplay" 0) '("meshtype" 0) '("grips" 1) '("attdia" 0) '("pickfirst" 1) '("delobj" 1) '("filedia" 1))

Gracias.

carlosmgilp

Mensajes : 149
Fecha de inscripción : 17/03/2016
Edad : 42
Localización : Venezuela

Volver arriba Ir abajo

Ordenar lista Empty Re: Ordenar lista

Mensaje por amc.dicsac Vie Jun 24, 2016 9:46 pm

Hola que tal aca tengo un ejemplo del maestro LeeMac

Código:
Command: (acad_strlsort '("a" "d" "A" "D" "1" "-" "_"))
("-" "_" "1" "a" "A" "d" "D")



Última edición por amc.dicsac el Sáb Jun 25, 2016 1:11 am, editado 1 vez
amc.dicsac
amc.dicsac

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

http://axprogramlisp.blogspot.pe/

Volver arriba Ir abajo

Ordenar lista Empty Re: Ordenar lista

Mensaje por carlosmgilp Sáb Jun 25, 2016 12:30 am

Hola hermano como estas.
Gracias por el dato, pero con la lista que tengo no me los ordena.
Esperemos haber si alguien me dice como se puede.
Saludos.

carlosmgilp

Mensajes : 149
Fecha de inscripción : 17/03/2016
Edad : 42
Localización : Venezuela

Volver arriba Ir abajo

Ordenar lista Empty Re: Ordenar lista

Mensaje por amc.dicsac Sáb Jun 25, 2016 1:08 am

carlosmgilp escribió:Hola hermano como estas.
Gracias por el dato, pero con la lista que tengo no me los ordena.
Esperemos haber si alguien me dice como se puede.
Saludos.

Aqui te mando esta solucion espero que te sirva saludos.

Código:
(defun c:orden (/ NomenclatureList)
(setq NomenclatureList  (list  '("cursorsize" 100) '("delobj" 1) '("facetres" 10) '("imageframe" 2) '("isolines" 8)
                    '("mirrtext" 0) '("mtextcolumn" 0) '("dispsilh" 1) '("peditaccept" 1) '("splinesegs" 16)
                    '("surftab1" 12) '("surftab2" 12) '("shortcutmenu" 27) '("selectionannodisplay" 0)
                    '("meshtype" 0) '("grips" 1) '("attdia" 0) '("pickfirst" 1) '("delobj" 1) '("filedia" 1)))
(cd:LST_SortList NomenclatureList 0 0))


    ; ======================================================================== ;
    ; Autor ------> kruuger
    ; https://www.theswamp.org/index.php?topic=41954.msg470690#msg470690
    ; Sortowanie listy / Sort list                                             ;
    ;  Lst  [LIST] - lista do sortowania / list to sort                        ;
    ;  Pos   [INT] - pozycja sortowania / sort position                        ;
    ;  Order [INT] - 0 = rosnaco / ascending                                   ;
    ;                1 = malejaco / descending                                 ;
    ; ------------------------------------------------------------------------ ;
    ; example   (cd:LST_SortList (list '(1 "b") '(4 "a") '(2 "c")) 0 1)                  ;
    ; ======================================================================== ;
    (defun cd:LST_SortList (Lst Pos Order)
      (vl-Sort Lst
        (function
          (lambda (%1 %2)
            ( (if (zerop Order) < >)
              (nth Pos %1)
              (nth Pos %2)
            )
          )
        )
      )
    )
amc.dicsac
amc.dicsac

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

http://axprogramlisp.blogspot.pe/

Volver arriba Ir abajo

Ordenar lista Empty Re: Ordenar lista

Mensaje por carlosmgilp Sáb Jun 25, 2016 1:57 am

Hola hermano como estas, funciona muy bien, me elimina el apostrofe pero después veo como se lo agrego a la lista final, para no agregarlo manualmente.

Un saludo y mil gracias.

carlosmgilp

Mensajes : 149
Fecha de inscripción : 17/03/2016
Edad : 42
Localización : Venezuela

Volver arriba Ir abajo

Ordenar lista Empty Re: Ordenar lista

Mensaje por devitg Sáb Jun 25, 2016 2:48 am

Verifica esto

Código:
(defun c:orden (/ NomenclatureList)
(setq NomenclatureList  (list  '("cursorsize" 100) '("delobj" 1) '("facetres" 10) '("imageframe" 2) '("isolines" 8)
                    '("mirrtext" 0) '("mtextcolumn" 0) '("dispsilh" 1) '("peditaccept" 1) '("splinesegs" 16)
                    '("surftab1" 12) '("surftab2" 12) '("shortcutmenu" 27) '("selectionannodisplay" 0)
                    '("meshtype" 0) '("grips" 1) '("attdia" 0) '("pickfirst" 1) '("delobj" 1) '("filedia" 1)))
  (setq lista-ordenada(cd:LST_SortList NomenclatureList 0 0)))  ; asigna la lista ordenada a una variable


    ; ======================================================================== ;
    ; Autor ------> kruuger
    ; https://www.theswamp.org/index.php?topic=41954.msg470690#msg470690
    ; Sortowanie listy / Sort list                                            ;
    ;  Lst  [LIST] - lista do sortowania / list to sort                        ;
    ;  Pos  [INT] - pozycja sortowania / sort position                        ;
    ;  Order [INT] - 0 = rosnaco / ascending                                  ;
    ;                1 = malejaco / descending                                ;
    ; ------------------------------------------------------------------------ ;
    ; example  (cd:LST_SortList (list '(1 "b") '(4 "a") '(2 "c")) 0 1)                  ;
    ; ======================================================================== ;
    (DEFUN CD:LST_SORTLIST  (LST POS ORDER)

      (VL-SORT LST
              (FUNCTION
                (LAMBDA (%1 %2)
                  ((IF (ZEROP ORDER)
                      <
                      >)
                    (NTH POS %1)
                    (NTH POS %2)
                    )
                  )
                )
              )
      )


devitg
Admin

Mensajes : 257
Fecha de inscripción : 16/03/2016
Edad : 75
Localización : CORDOBA ARGENTINA

https://acadhispano.foroargentina.net

Volver arriba Ir abajo

Ordenar lista Empty Re: Ordenar lista

Mensaje por carlosmgilp Sáb Jun 25, 2016 4:47 am

Bueno de por si solo agregaste la variable.

Pero los apostrofes si se van ya hice las comparaciones.

Jejeje.
Un saludo.

carlosmgilp

Mensajes : 149
Fecha de inscripción : 17/03/2016
Edad : 42
Localización : Venezuela

Volver arriba Ir abajo

Ordenar lista Empty Re: Ordenar lista

Mensaje por nolo Dom Jun 26, 2016 12:41 pm

Esta estupenda la función de Kruuger pero yo lo hubiera echo así

Código:
(mapcar '(lambda(a)(assoc a NomenclatureList))(acad_strlsort (mapcar 'car NomenclatureList)))

Un saludo

nolo

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

Volver arriba Ir abajo

Ordenar lista Empty Re: Ordenar lista

Mensaje por carlosmgilp Dom Jun 26, 2016 5:46 pm

Hola Nolo como estas.

Muy buena opción.

Muchas gracias y sigo tomando nota.

carlosmgilp

Mensajes : 149
Fecha de inscripción : 17/03/2016
Edad : 42
Localización : Venezuela

Volver arriba Ir abajo

Ordenar lista Empty Re: Ordenar lista

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.