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

Convertir cadena a lista de puntos

4 participantes

Ir abajo

Convertir cadena a lista de puntos Empty Convertir cadena a lista de puntos

Mensaje por robierzo Vie Abr 22, 2022 11:00 am

Hola. Tengo una cadena de texto formada por decenas de puntos, con su respectiva X e Y. Necesito pasar esa cadena de texto a una lista de puntos.
Ejemplo:
cadena "125.364 796.146 108.456 883.004 108.990 903.008......."
Lista resultante ((125.364 796.146)(108.456 883.004)(108.990 903.008)....)

Alguna idea para hacerlo de forma lo más automatizada posible???? Graciassss
robierzo
robierzo

Mensajes : 102
Fecha de inscripción : 17/03/2016
Localización : La Coruña

http://www.selmotopografia.es

Volver arriba Ir abajo

Convertir cadena a lista de puntos Empty separa cadena y agrupar de a dos

Mensaje por devitg Vie Abr 22, 2022 4:55 pm

No encuentro el modo de insertar como CODE , agradezco a quien pueda informarme


;******************************************************************************************
;;;(str-divset "Text mit\nZeilenumbruch" " \n")
;;;;;-*******************************************************************************************************************************
;;;;;-*******************************************************************************************************************************
;;Copyright :copyright: http://autolisp.mapcar.net/strtok.html
(DEFUN STR-DIV (STR C / I L) ;_01
(SETQ I 1)
(SETQ L (STRLEN STR))
(WHILE (AND (<= I L) (/= (SUBSTR STR I 1) C))
(SETQ I (1+ I))
)
(LIST (SUBSTR STR 1 (1- I)) (SUBSTR STR (1+ I)))
)
;;;
;;;(str-div "Schraube;M12;1,5;36;367.4;252.6;0.0" ";")
;;;("Schraube" "M12;1,5;36;367.4;252.6;0.0")
;;;(str-div "1,234,567.89" ",")

;;;("M12" "1,5;36;367.4;252.6;0.0")
;;;;;-*******************************************************************************************************************************

;;separa por un separador

(DEFUN STR-TOK (STR C / TMP) ;_01
(IF (/= STR "")
(PROGN
(SETQ TMP (STR-DIV STR C))
(APPEND (LIST (CAR TMP)) (STR-TOK (CADR TMP) C))
)
)
)
;;;"M12,1.5,36,367.4,252.6,0.0" )
;;;(str-tok "Schraube;M12;1,5;36;367.4;252.6;0.0" ";")
;;;
;;;("Schraube" "M12" "1,5" "36" "367.4" "252.6" "0.0")
;;;
;;;;;-*******************************************************************************************************************************
;;************************************************************************************************************
;;*//*/*/*/*/*/*/*/*/*/*/*/*/**/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*
(DEFUN GROUP-BY-NUM (LST NUM / LS RET)

(SETQ RET NIL)
(IF (= (REM (LENGTH LST) NUM) 0)
(PROGN
(SETQ LS NIL)
(REPEAT (/ (LENGTH LST) NUM)
(REPEAT NUM
(SETQ LS
(CONS (CAR LST) LS)
LST (CDR LST)))
(SETQ RET
(APPEND RET (LIST (REVERSE LS)))
LS NIL)))
)
RET
)
;;-*******************************************************************************************************************************
(setq Cadena "125.364 796.146 108.456 883.004 108.990 903.008")
(setq cadena-separada (str-tok cadena " "))
(setq puntos-cadena (GROUP-BY-NUM cadena-separada 2))

devitg
Admin

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

https://acadhispano.foroargentina.net

A robierzo le gusta esta publicaciòn

Volver arriba Ir abajo

Convertir cadena a lista de puntos Empty Re: Convertir cadena a lista de puntos

Mensaje por robierzo Vie Abr 22, 2022 8:52 pm

Muchas gracias por la función, Gabriel. Está perfecta. Le he añadido un distof para que me lo convierta a números y es justo lo que necesitaba.

Gracias!!!!

P.D.: el símbolo para poner como código es el décimo empezando por la izquierda (el segundo del tercer bloque)
robierzo
robierzo

Mensajes : 102
Fecha de inscripción : 17/03/2016
Localización : La Coruña

http://www.selmotopografia.es

Volver arriba Ir abajo

Convertir cadena a lista de puntos Empty no puedo usar el CODE

Mensaje por devitg Vie Abr 22, 2022 8:57 pm

robierzo escribió:Muchas gracias por la función, Gabriel. Está perfecta. Le he añadido un distof para que me lo convierta a números y es justo lo que necesitaba.

Gracias!!!!

P.D.: el símbolo para poner como código es el décimo empezando por la izquierda (el segundo del tercer bloque)


No veo ningun símbolo en mi PC

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

Convertir cadena a lista de puntos Empty no veo los códigos

Mensaje por devitg Vie Abr 22, 2022 9:01 pm

Admin escribió:
robierzo escribió:Muchas gracias por la función, Gabriel. Está perfecta. Le he añadido un distof para que me lo convierta a números y es justo lo que necesitaba.

Gracias!!!!

P.D.: el símbolo para poner como código es el décimo empezando por la izquierda (el segundo del tercer bloque)


No veo ningun símbolo en mi PC
No veo los códigos

Debe ser algo de los HTML que está desactivados

Archivos
Convertir cadena a lista de puntos Attachment
no veo los códigos a que te refieres.png no veo los códigosNo tienes los permisos para descargar los archivos.(106 KB) Descargado 0 veces

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

Convertir cadena a lista de puntos Empty Re: Convertir cadena a lista de puntos

Mensaje por devitg Sáb Abr 23, 2022 12:42 am

Gracias Robierzo . son todas defun que he ido "cosechando" en el extenso vergel del mundo LISP .
Las dos primeras tienen indicado el autor , la última es de mi amigo Ruso, con perdón de la palabra, FATTY , o TOH . o OLEG , lamentablemente fallecido . Quien supo ayudarme en mi desarrollo de cuasi programador LISP.

devitg
Admin

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

https://acadhispano.foroargentina.net

A robierzo le gusta esta publicaciòn

Volver arriba Ir abajo

Convertir cadena a lista de puntos Empty Re: Convertir cadena a lista de puntos

Mensaje por Dominguez Sáb Abr 23, 2022 1:42 pm

devitg escribió: No encuentro el modo de insertar como CODE , agradezco a quien pueda informarme
Perdon: habia puesto como mensaje lo mismo que ROBIERZO.
Dominguez
Dominguez

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

Volver arriba Ir abajo

Convertir cadena a lista de puntos Empty no veo los códigos sigo sin ver los iconos de formateo en mi pantalla

Mensaje por devitg Sáb Abr 23, 2022 3:15 pm

Dominguez escribió:
devitg escribió: No encuentro el modo de insertar como CODE , agradezco a quien pueda informarme
Perdon: habia puesto como mensaje lo mismo que ROBIERZO.

Va prueba de quote y code "a mano "

"prueba"

Código:
 (setq  estoesunapreuba (list q w e r t y))

estoy aprendiendo





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

Convertir cadena a lista de puntos Empty Re: Convertir cadena a lista de puntos

Mensaje por Dominguez Jue Abr 28, 2022 12:33 pm

Perfecto, asi es.
un saludo
Dominguez
Dominguez

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

Volver arriba Ir abajo

Convertir cadena a lista de puntos Empty Re: Convertir cadena a lista de puntos

Mensaje por Gerardo Calvo Vie Abr 29, 2022 9:18 pm

Hola amigos.
Les dejo un método alternativo

Aunque me encanta esto de manipular y descomponer cadenas de texto, también está el método de convertir primero la cadena a una lista con la función READ y luego trabajarla como valores que hay que agrupar, en vez de irla partiendo en pequeñas cadenas. Parece bastante más simple

Código:
(setq cadena "125.364 796.146 108.456 883.004 108.990 903.008")

(setq lista (read (strcat "(" cadena ")" )))

(while
   (setq punto (list (car lista) (cadr lista))
         puntos (cons punto puntos)
         lista (cddr lista)
   )
)

_$ puntos
((108.99 903.008) (108.456 883.004) (125.364 796.146))
_$

Gerardo Calvo

Mensajes : 46
Fecha de inscripción : 29/10/2019

A robierzo y a Marco Jacinto les gusta esta publicaciòn

Volver arriba Ir abajo

Convertir cadena a lista de puntos Empty Re: Convertir cadena a lista de puntos

Mensaje por robierzo Sáb Abr 30, 2022 8:37 am

Hola Gerardo. Está genial!!!!!
Muchísimas gracias!!!!
robierzo
robierzo

Mensajes : 102
Fecha de inscripción : 17/03/2016
Localización : La Coruña

http://www.selmotopografia.es

Volver arriba Ir abajo

Convertir cadena a lista de puntos Empty Re: Convertir cadena a lista de puntos

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.