Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Seleccionar Solo Los Nombres Que Contienen Una Tilde
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Seleccionar Solo Los Nombres Que Contienen Una Tilde 
 
Buenas!.

¿ No existe un método algo más rápido ?.  

Tengo una lista de nombres y quiero solo seleccionar solo los que tienen tilde.
Creo que es la forma correcta de hacerlo con Instr.

Public Function EncontrarTildes(nombre As String) As Boolean
  
  Dim x As Integer
  Dim vocales As String = "áéíóúÁÉÍÓÚ"
  Dim encontrada As Boolean
      
  x = 1
  
  While (encontrada = False And (x <= String.Len(vocales)))  
    If String.InStr(nombre, String.Mid(vocales, x, 1)) > 0 Then encontrada = True    
    Inc x    
  Wend    
  
  Return encontrada
  
End
 


 nombrescontildes

Como sabéis es posible usar un bucle for y salir de este cuando haya coincidencia pero
he leído que ciertos programadores no ven bien el uso instrucciones como "break"
para salir del bucle, por eso usé una variable boolean con un While.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Martes, 07 Abril 2020, 22:41; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Seleccionar Solo Los Nombres Que Contienen Una Tilde 
 
Si, existe una forma mas sencilla de hacerlo
Public Function AShellLoContaminoJava(s As String) As Boolean
  If s = String.RemoveDiacritics(s) Then
    Return False
    Else
      Return True
  Endif
End
 

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Seleccionar Solo Los Nombres Que Contienen Una Tilde 
 
Tincho:

Citar:

AShellLoContaminoJava


 

Esos métodos no son fáciles de encontrar a la primera en la ayuda de gambas.  
Falta de costumbre de no usar gb.util.  Y sigo sin usarlo muchas veces.

Gracias!.

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: Seleccionar Solo Los Nombres Que Contienen Una Tilde 
 
Como las letras localizadas son caracteres ASCII especiales, en los que está presente el valor hexadecimal &hC3, buscaremos este valor dentro de cada palabra.

Es decir...
Private Function EncontrarTildes(nombre As String) As Boolean

   Return Byte[].FromString(nombre).Exist(&C3)
  
End

 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Seleccionar Solo Los Nombres Que Contienen Una Tilde 
 
Hola Vuott!.

Si se quiere reducir el código cada vez es más difícil de entender.  

Un poco extraño el ascii extendido, dos códigos cuando se usa una letra con "tilde".

¿ No es una letra "A" con diéresis el código C3 ?

Si le paso a la función "ó" me devuelve los códigos 195 ( C3 )  y 179...desde luego el 179 no es precisamente una "o"....

La solución más corta. Tu dominas muy bien Byte[]...

Gracias!.

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: Seleccionar Solo Los Nombres Que Contienen Una Tilde 
 
Shell escribió:  
Si se quiere reducir el código cada vez es más difícil de entender.


Bueno...

Private Function EncontrarTildes(nombre As String) As Boolean

  dim bb as Byte[]

  bb = Byte[].FromString(nombre)

  return bb.Exist(&C3)

End

 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Seleccionar Solo Los Nombres Que Contienen Una Tilde 
 
Shell escribió:  
Tu dominas muy bien Byte[]...


Consul, ...in manu habeo vectores !


 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Seleccionar Solo Los Nombres Que Contienen Una Tilde 
 
Vuott:

Entiendo bien tu código. Lo que pasa es que no tengo costumbre de usar Byte[] y no se me hubiera ocurrido hacerlo así.
Ya me has demostrado otra veces lo útil que es, pero como no lo uso, no se me ocurre a la primera.  

Citar:

Consul, ...in manu habeo vectores !


Una cuestión. ¿ Cómo sabías que correspondía a la tilde ?. ¿  Estuviste viendo el código que se repetía ?.  jeje..
Mira esto:

https://elcodigoascii.com.ar/


Encontré:

Citar:

codigo ascii 195 = ├ ( Línea vertical con empalme de recuadro gráfico )


Esto es distinto.

¿ Hay otros códigos ascii extendido que hacen funciones parecidas ?.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Viernes, 10 Abril 2020, 15:42; editado 2 veces 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Tilde Bromista Shell General 2 Martes, 26 Febrero 2013, 17:46 Ver último mensaje
shordi
No hay nuevos mensajes El Tilde A Que Key.code Corresponde? v3ctor General 3 Viernes, 25 Septiembre 2015, 18:27 Ver último mensaje
v3ctor
No hay nuevos mensajes Reto 9 (v3ctor) Remplazo De Vocales Con Ti... v3ctor Retos de programación 8 Lunes, 14 Marzo 2016, 14:22 Ver último mensaje
Shell
No hay nuevos mensajes Problema Para Contar Caracteres Con Tilde ... v3ctor General 5 Miercoles, 12 Octobre 2016, 23:07 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

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
No puede descargar archivos
No puede publicar eventos en el calendario