|
Página 1 de 3
|
Split, Más De Un Caracter Separador
Autor |
Mensaje |
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Split, Más De Un Caracter Separador
Hola!.
Tengo una duda con Split. Supongamos que tengo este texto:
Public Sub Main()
Dim texto As String
Dim palabras As New String[]
'Ojo.Aqui entre "lugar y de" he usado dos espacios. Por si no se visualiza.
texto = "En un lugar de la Mancha"
'Aqui igual, uso dos espacios como caracteres separadores, pero aparenta solo verse uno
palabras = Split(texto, " ")
Stop
End
¿ No sería normal que al usar esos dos espacios como separadores el array quedase así ?.
0 - "En un lugar"
1 -"de la Mancha"
¿ Por qué divide cada palabra ?.
No logro hacer eso en gambas y en cambio en Python si.
texto = "En un lugar de la Mancha"
partes = texto.split(" ")
print (partes)
La salida fue:
Citar:
['En un lugar', 'de la Mancha']
Quizás el Split de Python es diferente al de gambas. Pero no lo veo muy normal.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#1 Viernes, 15 May 2015, 11:36 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Split, Más De Un Caracter Separador
Curioso, no es lo mismo vista previa, que al enviar el mensaje. Se ve bien los dos espacios!.
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Viernes, 15 May 2015, 11:38; editado 1 vez
|
#2 Viernes, 15 May 2015, 11:37 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Split, Más De Un Caracter Separador
Intente con esto, pero tampoco hubo éxito.
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#3 Viernes, 15 May 2015, 12:17 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Split, Más De Un Caracter Separador
Lo que va entre comillas en split no es la "cadena separadora" son los "caracteres que hacen de separadores". O sea que si pones dos espacios sólo los espacios hacen esa función. si pones, por ejemplo "-;." siempre que se encuentre cualquiera de ellos separará un elemento para el array.
|
#4 Viernes, 15 May 2015, 12:30 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Split, Más De Un Caracter Separador
Shell:
Puedes usar este "truco":
'Ojo.Aqui entre "lugar y de" he usado dos espacios. Por si no se visualiza.
texto = "En un lugar de la Mancha"
texto =Replace(texto," ",Chr$(6708)) 'lo que hago es reemplazar los dos espacios por un caracter "raro",
palabras = Split(texto, Chr$(6708))
|
#5 Viernes, 15 May 2015, 13:14 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Split, Más De Un Caracter Separador
Shordi:
Pues "ezo". No funciona, no los separa como debiera.
Julio:
Y debo hacer eso ?. No parece muy lógico. Ya veo que te ha surgido el mismo problema.
Que raro, si ya se le está diciendo que vaya dividiendo cada vez que encuentra "dos espacios".
Pues como no sea cosa de Split de gambas.
Suelo usar el split de Python como el de gambas, pero no son iguales.
Como tampoco veo en el de Python, lo de eliminar los elementos que midan 0 y me tengo que hacer una función.
def eliminar_espacios(texto):
lista_tmp = []
for palabra in texto:
if len(palabra) == 0:
continue
else:
lista_tmp.append(palabra.strip())
return lista_tmp
En parte aun no conozco bien la instrucción split de python al 100%.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#6 Viernes, 15 May 2015, 18:36 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Split, Más De Un Caracter Separador
Puedes usar este "truco":
...vuelvo a partir del post de jsbsan:
Saludos
|
#7 Viernes, 15 May 2015, 19:40 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Split, Más De Un Caracter Separador
Vuott:
La idea no es mala. Sustituir los dos espacios por un carácter de nueva linea.
Lo veo algo "extraño" tener que hacer eso. Tiene que existir alguna razón
de por que en gambas se ha hecho así.
En otros lenguajes..(jajaja)...no nos complicamos tanto.
Una vez más el camino más rápido es el camino mas fácil. O el más fácil de entender.
P.d ¿ por qué los programadores les gusta complicarse tanto ?.
..respuesta..por que el lenguaje no le da opción.
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#8 Viernes, 15 May 2015, 20:54 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Split, Más De Un Caracter Separador
Citar: Off topic
Shordi:
Pues "ezo". No funciona, no los separa como debiera.
Me parece que no me has entendido la respuesta que te dí. Prueba ésto:
aStr = Split("mi mama.me mima,mucho", ".,")
astr[0]="mi mama"
astr[1]="me mima"
astr[2]="mucho"
Así es como funciona, sin problemas y tal como dice la documentación....
=================== No podemos regresar
|
#9 Viernes, 15 May 2015, 21:17 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Split, Más De Un Caracter Separador
Shordi:
Cierto, no te entendí a la primera. No tenía ni idea que la instrucción fuera así,
como siempre he usado un solo carácter de separador. Me extrañó muchísimo.
En este caso es que necesitaba usar los dos espacios como separador.
No me vale un solo espacio, Es un nombre que tiene espacio en medio, no puedo separarlo.
De por si, el nombre es un campo de un registro.
Fíjate en esto:
De lo que eran registros de una antigua base de datos de juegos, la aplicación convirtió de esa forma todo el registro
a lineas de texto. Y le fue añadiendo los espacios que en su día alguien configuró para cada campo.
Ahora lo que hago es la operación contraria. Convertir todo a campos y registros. La información esta en un
archivo de texto.
Andaba practicando con los dos lenguajes y el archivo. Y de casualidad, me encontré ese problema en gambas.
Que no conocía que eso fuera así.
Uno de los grandes problemas de muchos libros cuando explican algo es que lo hacen en plan diccionario,
no muestran ni un ejemplo. Y cuando vas a buscar un ejemplo en la red, hay cientos de los mas sencillo.
En este caso, encuentras de un solo carácter separador. No se suelen complicar demasiado a la hora de mostrar
un ejemplo.
Con lo que no hacen nada diferente, simplemente es otro ejemplo igual que otro y que otro y que otro..
Pero eso de decir..."es que esto lo hice yo!".
"Vanitas vanitatum omnia vanitas"
Y otra:
"La vanidad es, sin duda mi pecado favorito"
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Sabado, 16 May 2015, 11:37; editado 1 vez
|
#10 Sabado, 16 May 2015, 11:36 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 3
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|