Lunes 18 de Noviembre de 2024, 05:19
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Primer Caracter En Mayuscula De Un String
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Primer Caracter En Mayuscula De Un String (Leído 18908 veces)
UserCode
Miembro MUY activo
Mensajes: 338
Primer Caracter En Mayuscula De Un String
«
en:
Sábado 30 de Julio de 2005, 16:06 »
0
Saludos
Me encuentro con el problema de ver como podría colocar a Mayuscula solo la primera letra de un string que se esté escribiendo en un TextBox e incluso que se evalue que si en el string hay un espacio en blanco, colocar en mayuscula la primera letra, y el resto quede en minuscula.
Ej: Augusto Valvuena
Unas lineas de código que haga esto sin que el usuario tenga que hacerlo por si mismo, algo automatizado.
Muchas gracias por cualquier ayuda.
Tweet
Si esto es Leído por accidente, induzca al vomito
UserCode
Miembro MUY activo
Mensajes: 338
Re: Primer Caracter En Mayuscula De Un String
«
Respuesta #1 en:
Sábado 30 de Julio de 2005, 16:35 »
0
Tengo el siguiente código que podría indicarse que realiza la operación de mantener en una cadena la primera letra en mayuscula y el resto en minuscula, el problema está en que produce el error: Espacio de Pila Insuficiente.
Private Sub TxtNombre_Change()
Dim i As Long
Dim Reves As String
Reves = ""
For i = Len(TxtNombre.Text) To 1 Step -1
Reves = Reves & Mid(TxtNombre.Text, i, 1)
Next i
TxtNombre.Text = StrConv(Reves, vbProperCase)
End Sub
Cómo podría solventar esto.
Saludos.
Si esto es Leído por accidente, induzca al vomito
Sagutxo
Miembro MUY activo
Mensajes: 320
Re: Primer Caracter En Mayuscula De Un String
«
Respuesta #2 en:
Sábado 30 de Julio de 2005, 17:59 »
0
salu2.
Código: Text
Dim TuCadena as string
Dim Valstr as string
Valstr= ucase(mid$(Tucadena,1,1)) & mid$(tucadena,2)
Esto comvierte el string ya creado, pero si capturas los caracteres pulsados solo tienes que comprobar si el string que introduce tiene mas de 1 car, por ejemplo, con la función [B]Len[/B] y cambiar el primer caracter solo si [B]len(cadena) =1[/B] .
No lo he probado pero supongo que tiene que funcionar
Espero haberte podido ayudar.
Agur
Mi mujer tiene un físico bárbaro!!!. Einstein.
zareth
Miembro activo
Mensajes: 36
Re: Primer Caracter En Mayuscula De Un String
«
Respuesta #3 en:
Sábado 30 de Julio de 2005, 18:37 »
0
holas
tal vez te pueda servir esto:
Código: Text
Private Sub Text1_Change()
Dim x As Integer
If Len(Trim(Text1.Text)) = 1 Then
Text2.Text = UCase(Mid(Text1.Text, 1, 1))
ElseIf InStr(1, Text1.Text, " ", 1) > 0 Then
x = InStr(1, Text1.Text, " ", 1)
Text2.Text = UCase(Mid(Text1.Text, 1, 1)) + Mid(Text1.Text, 2, x - 1) + UCase(Mid(Text1.Text, x + 1, 1)) + Mid(Text1.Text, x + 2, Len(Text1.Text))
Else
Text2.Text = UCase(Mid(Text1.Text, 1, 1)) + Mid(Text1.Text, 2, Len(Text1.Text))
End If
End Sub
aki lo hice con dos cuadros de texto, solo cambia el valor de salida para ke sea en un cuadro de texto.. suerte
z4r3th
PD: ojo ke esta validacion es para dos palabras, ejem: Augusto Valvuena. No lo he probado con tres o mas... pero ya tienes la idea... nos vemos
UserCode
Miembro MUY activo
Mensajes: 338
Re: Primer Caracter En Mayuscula De Un String
«
Respuesta #4 en:
Sábado 30 de Julio de 2005, 19:00 »
0
gracias a ambos probare con los códigos que me han indicado y les notifico.
saludos.
Si esto es Leído por accidente, induzca al vomito
cpmario
Miembro HIPER activo
Mensajes: 629
Re: Primer Caracter En Mayuscula De Un String
«
Respuesta #5 en:
Lunes 1 de Agosto de 2005, 01:42 »
0
Aún más fácil
Usa StrConv
Ejemplo:
gstrText = StrConv(gstrText, vbProperCase)
UserCode
Miembro MUY activo
Mensajes: 338
Re: Primer Caracter En Mayuscula De Un String
«
Respuesta #6 en:
Lunes 1 de Agosto de 2005, 18:43 »
0
Gracias muchachos, bueno no sé si el código de zareth sea lo justo ya que en caso de que se escriba un nombre más completo (1er nombre, 2do nombre, o ambos apellidos) ya no se reflejaria como debiese, variaria dependiendo del ingreso.
En mi código ya está la linea que indicas cpmario, es una buena linea de código sin duda alguna porque es lo que necesito que en el text se aplique, el problema es que cuando escribes un nombre, el cursos vuelve a empezar desde Len=0 (por asi decirlo) en el TextBox es decir....
Si se escribe: Juan
Uno escribe el primer caracter: J
lo eleva a mayuscula (todo bien con eso)
pero al escribir el siguiente caracter no lo pone a la derecha sino a la izquierda
Ej: Uj
y al final termina con esto: Nauj
El StrConv(TextBox, vbProperCase) si me sirve porque luego de un espacio en blanco escribe en mayuscula el caracter, de cada palabra, lo cual está bien.
Bueno perdon por el retraso, realmente hoy no podré metermele a este pequeño asunto del TextBox, debido a que otras cosas me han consumido el tiempo, mañana en la mañana si y les aviso, solo necesito metermele a realizar un Reves del string y listo.
Muchas gracias compadres.
Si esto es Leído por accidente, induzca al vomito
cpmario
Miembro HIPER activo
Mensajes: 629
Re: Primer Caracter En Mayuscula De Un String
«
Respuesta #7 en:
Lunes 1 de Agosto de 2005, 19:38 »
0
Coloca el código en el evento LostFocus
Código: Text
Private Sub TextBox_LostFocus()
TextBox.Text = StrConv(TeTextBox.Text, vbProperCase)
End Sub
jodijo5
Miembro HIPER activo
Mensajes: 518
Nacionalidad:
Re: Primer Caracter En Mayuscula De Un String
«
Respuesta #8 en:
Lunes 1 de Agosto de 2005, 21:19 »
0
tengo una solucion mas corta me parece:
Código: Text
Private Sub Textnombre_change()
On Error Resume Next
Textnombre = UCase(Mid(Textnombre, 1, 1)) & Mid(Textnombre, 2)
If (Asc(Mid(Right(Textnombre, 2), 1, 1)) = 32) Then Textnombre = Left(Textnombre, Len(Textnombre) - 1) & UCase(Right(Textnombre, 1))
Textnombre.SelStart = Len(Textnombre)
End Sub
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com
DiabloRojo
Miembro MUY activo
Mensajes: 220
Re: Primer Caracter En Mayuscula De Un String
«
Respuesta #9 en:
Lunes 1 de Agosto de 2005, 22:39 »
0
Yo probé algo así y no me dió ningún problema.
Código: Text
Private Sub Text1_Change()
Text1.Text=StrConv(Text1.Text,vbProperCase)
Text1.SelStar=Len(Text1.Text)
End Sub
Por otro lado, el error número 28 'No hay suficiente espacio de pila' se debe a estas dos líneas combinadas:
Citar
...
Reves = Reves & Mid(TxtNombre.Text, i, 1)
...
TxtNombre.Text = StrConv(Reves, vbProperCase)
Ya que provocan que el evento Change ocurra infinitas veces (hasta que se acaba el espacio de la pila).
DiabloRojo.
DiabloRojo
Miembro MUY activo
Mensajes: 220
Re: Primer Caracter En Mayuscula De Un String
«
Respuesta #10 en:
Martes 2 de Agosto de 2005, 01:08 »
0
Otra forma pero en el evento KeyPress:
Código: Text
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim TextAnt As String ' Almacena el contenido "actual" del Textbox
Dim Letra As String ' Para chequear el último caracter que hay en el texto
'
TextAnt = Text1.Text
letra = Right(TextAnt, 1)
If ((letra = " ") Or (Len(TextAnt) = 0)) Then
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End If
End Sub
Esta forma de lograr que la primera letra de cada palabra sea mayúscula me gusta más ya que no toma el texto completo para modificarlo , cada vez que ocurre el evento (como sucede si se usa la función StrConv en el evento Change).
Saludos,
DiabloRojo.
UserCode
Miembro MUY activo
Mensajes: 338
Re: Primer Caracter En Mayuscula De Un String
«
Respuesta #11 en:
Viernes 5 de Agosto de 2005, 14:54 »
0
uhmm... si cpmario el colocarlo en el LostFocus es una buena idea, ni lo pense asi, disculpas.
Muy buen código jodijo5 funciona a la perfección compadre, corto y eficiente.
Y mis felicitaciones a DiabloRojo también, no solo por un código que realiza estupendamente el trabajo sino por 2 formas de hacerlo.
Perdon por el retraso, a todos los programadores de este hilo, mis más sinceras y agradecidas felicitaciones (a todos) por igual, solo hasta ahora es que pude ver lo de este TextBox y pasar por aqui, en el peor de los casos haberlo dejado asi, sin la forma de cambiar o ajustar esto en el string, pero gracias a todos ustedes este TextBox podrá hacer lo pensado.
Muchas gracias, es una muy buena comunidad de programadores.
THE END.
Si esto es Leído por accidente, induzca al vomito
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Primer Caracter En Mayuscula De Un String