Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Seleccionar Solo Los Nombres Que Contienen Una Tilde

Seleccionar Solo Los Nombres Que Contienen Una Tilde
Artículo
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



 
última edición por Shell el Martes, 07 Abril 2020, 21:41; editado 1 vez 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Martes, 07 Abril 2020, 21:39 ]
 


Seleccionar Solo Los Nombres Que Contienen Una Tilde
Comentarios
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 usuario Enviar mensaje privado  
tincho [ Martes, 07 Abril 2020, 23:33 ]
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



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Jueves, 09 Abril 2020, 11:32 ]
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 usuario Enviar mensaje privado  
vuott [ Jueves, 09 Abril 2020, 17:50 ]
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



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Jueves, 09 Abril 2020, 19:30 ]
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 usuario Enviar mensaje privado  
vuott [ Jueves, 09 Abril 2020, 21:46 ]
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 usuario Enviar mensaje privado  
vuott [ Jueves, 09 Abril 2020, 21:53 ]
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



 
última edición por Shell el Viernes, 10 Abril 2020, 14:42; editado 2 veces 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Viernes, 10 Abril 2020, 14:40 ]
Mostrar mensajes anteriores:    
 
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


 



 

cron