Seleccionar Solo Los Nombres Que Contienen Una Tilde


Objetivo: 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
Objetivo: 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.

Perfil MP  
Objetivo: 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

Objetivo: 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

Perfil MP  
Objetivo: 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

Objetivo: 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

Perfil MP  
Objetivo: Re: Seleccionar Solo Los Nombres Que Contienen Una Tilde
Shell escribió:  
Tu dominas muy bien Byte[]...


Consul, ...in manu habeo vectores !


Perfil MP  
Objetivo: 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

Página 1 de 1


  
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

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1141s (PHP: -24% SQL: 124%)
Consultas SQL: 25 - Debug off - GZIP Activado