Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 3
Ir a la página 1, 2, 3  Siguiente
 
Split, Más De Un Caracter Separador
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Split, Más De Un Caracter Separador 
 
Intente con esto, pero tampoco hubo éxito.

...
palabras = Split(texto, String(2, " "))
....
 

 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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))

 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Split, Más De Un Caracter Separador 
 
jsbsan escribió: [Ver mensaje]
Puedes usar este "truco":


...vuelvo a partir del post de jsbsan:


Public Sub Main()

  Dim texto, s As String
  Dim palabras As String[]
  
    texto = "En un lugar  de la Mancha"
  
  'Aqui cambio los dos espacios en un caracter 0x0A:
    palabras = Split(Replace(texto, "  ", "\n"), "\n")
  
' Veo el numero de elementos del vector:
   Print palabras.Count

' Voy a ver en console el resultado:
   For Each s In palabras
     Print s
   Next
  
End
  

Saludos
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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 ?.  1suicidio
..respuesta..por que el lenguaje no le da opción.  
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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:

 linea_de_texto_con_muchos_espacios_1431770627_251951

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 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Split campanillas General 3 Miercoles, 03 Marzo 2010, 18:14 Ver último mensaje
soplo
No hay nuevos mensajes Separador De Grupos Y/o Elementos En ListB... GambasLinux Controles/Librerías/Componentes 9 Lunes, 08 Marzo 2010, 10:39 Ver último mensaje
shordi
No hay nuevos mensajes Split osunaosuna Aplicaciones/Fragmentos de Código 7 Sabado, 12 Julio 2014, 08:06 Ver último mensaje
Shell
No hay nuevos mensajes Importar CSV Pero Cual Es El Caracter Sepa... tincho Aplicaciones/Fragmentos de Código 6 Martes, 27 Agosto 2019, 20:51 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 3
Ir a la página 1, 2, 3  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron