Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Capitalizar Una Cadena
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Capitalizar Una Cadena 
 
Buenas!.

Parece que no hay función que haga esto en gambas.  
Inventé esta:

Public Sub Main()
  
  Dim nombre As String
  
  nombre = "mArtíN"
  
  Print Capitalizar(nombre)
  
End

Public Function Capitalizar(cadena As String) As String
  
  Return Upper(Left(cadena, 1)) & Lower(Mid(cadena, 2))
  
End
 


Citar:

Martín


Quería probar con UCase y LCase pero parece que dan problemas con UTF-8

Aparentemente recomienda usar la clase String mejor.  Al tener tilde la í no aparenta dar error con Upper,
Ahora mismo no sabría buscarle las cosquillas para que diese error.

Ah, si comentaros, no hubo forma de encontrar Upper o Lower en la ayuda del propio editor de Gambas.
Probé en español, nada. Probé en inglés, nada también. Viene en la misma ayuda de Ucase o LCase,
pero en otro lugar de la ayuda no.

O no la direcciona a la ayuda donde se encuentra UCase o LCase.  

Saludos
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
última edición por Shell el Domingo, 22 Julio 2018, 13:03; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Capitalizar Una Cadena 
 
La función que hace eso en gambas es UcaseFirst en el componente gb.util.

   
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Capitalizar Una Cadena 
 
Shordi:

Ah, pero "UcaseFirst" no hace lo mismo que la función que puse arriba. Solo hace mayúscula la primer letra.  

La idea es coger cualquier palabra, en este caso un nombre y convertir su primera letra en mayúscula y el resto en minúscula.
Al igual que hace en Python:

Citar:

capitalize(...)
 |      S.capitalize() -> str
 |      
 |      Return a capitalized version of S, i.e. make the first character  
 |      have upper case and the rest lower case.


Es que si solamente hace mayúscula la primera, el resto de las cadenas se quedan hecha un churro.  

Saludos
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Capitalizar Una Cadena 
 
Shell escribió:  
Parece que no hay función que haga esto en gambas.  


La pregunta real es una otra: por qué habría de hacerlo ?  
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Capitalizar Una Cadena 
 
Lo más parecido que he necesitado hacer nunca es el poner en mayúscula la primera letra de cada palabra. (Lo uso para normalizar la grabación de nombre y apellidos, que mis usuarios siguen creyendo que si lo teclean todo con mayúsculas se ahorran poner los acentos... y eso que son maestros)

Public Function capitalizar(cadena As String) As String
    
  Dim palabras As String[]  
  Dim n as integer

  palabras = Split(cadena, " ")
  For n=0 to palabras.Max
      palabras[n]= UCase(Left(palabras[n], 1)) & LCase(Mid(palabras[n], 2))
  Next
  Return palabras.join(" ")
    
End

 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Capitalizar Una Cadena 
 
Vuott:

Citar:

La pregunta real es una otra: por qué habría de hacerlo ?


Es una función que puede ser requerida. Comparaciones por ejemplo, rectificar, etc, etc.
En Python hay funciones  a diestro y siniestro. A veces creo que es exagerado.

Tienes que buscarle la utilidad a esas funciones. La mejor forma de ver esa utilidad es viendo algo de código
y su empleo. Cuando no se ve o  no se usa no le veremos la utilidad. Es como desconocer que existe algo que puede
ser de utilidad, pero como no sabes que existe.

Por normal general construimos la función. Pero imagina construir una función muy compleja y que el propio lenguaje ya la tiene
pero no encuentras forma de saber si existe.

Shordi:

En este caso no es cambiar a mayúsculas la letra de cada palabra.
Es muy similar en parte a la primera.

Es raro eso de capitalizar cada letra de la palabra. Aunque lo hago en ciertas hojas de Calc.

Recuerda el tema de la incompatibilidad de UCase y LCase con UTF-8.
Es que no he visto la forma de testearlo para que de error. Si llegue a verlo en un TextBox y reparandolo con la clase String.

Saludos
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Capitalizar Una Cadena 
 
Shell escribió:  

En Python ... a diestro y siniestro.  

Por supuesto, se mueve como una... serpiente !  


Shell escribió:  
A veces creo que es exagerado.

Bravo.
Estoy de acuerdo con este principio.
 



 
última edición por vuott el Lunes, 23 Julio 2018, 15:42; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Capitalizar Una Cadena 
 
El inglés y el español tienen un tratamiento diferente sobre las palabras léxicas (perro, casa, auto, etc.) de las gramaticales (artículos, preposiciones, etc.) una función de capitalizar cada primer letra (que debería ser léxica) serviria en una aplicación de bibliotecología o para usar con bibtex o biblatex, por ejemplo.

El uso de capitalización de mayúsculas

The Use of Capital Letter Capitalization

 



 
imagomundi - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Capitalizar Una Cadena 
 
Desde luego uso  tiene. Todo dependerá de lo que se quiera hacer.  
Que haya aplicaciones que sea más habitual verlo es cuestión de conocerlas o verlas.

Cuando hace bastantes años no teníamos Internet, usábamos cd's de shareware o freeware y puede
que en esa época tuviéramos más tiempo disponible para ver aplicaciones y aplicaciones,
con lo que veíamos patrones de trabajo y diseño de otros programadores mas veces.

En la actualidad es muy probable que como usuario dedicado a la programación, no profesional
y un uso cotidiano del ordenador. Sean aplicaciones contadas las que usamos a diario.

Cuando antes (por lo menos por mi parte) me dedicaba a ver el contenido del cd en la mayoría de las
aplicaciones principales de portada de la revista. Algunas acompañaban una captura y "te atrapaba por los ojos".
( Como diría el grupo punk "The Clash" de la época de los 70).

Saludos
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Capitalizar Una Cadena 
 
shordi escribió:  
...siguen creyendo que si lo teclean todo con mayúsculas se ahorran poner los acentos... y eso que son maestros)
Si es un error bastante común.
Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
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 ¿ Una Cadena Vacía Es Una Subcadena De C... Shell General 2 Jueves, 07 Agosto 2014, 15:01 Ver último mensaje
Shell
No hay nuevos mensajes ¿ Qué Ocupa Más ?. ¿ Array De Cadena O... Shell General 17 Jueves, 26 Noviembre 2015, 09:49 Ver último mensaje
Shell
No hay nuevos mensajes Cadena A Matriz [SOLUCIONADO] skhaliburg General 3 Sabado, 25 Septiembre 2010, 20:06 Ver último mensaje
jsbsan
No hay nuevos mensajes Tipo String. Fin De Cadena Shell General 4 Viernes, 23 May 2014, 00:58 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  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
No puede descargar archivos
No puede publicar eventos en el calendario