alguna función para capitalizar frases.

05/08/2005 - 11:32 por Javier | Informe spam
como Capitalizar frases
me gustaria una funcion para capitalizar frases.

De momento con esta me capitaliza la primera palabra de la frase:
Function Capital(str)
Capital=Ucase(left(str,1)) & Lcase(mid(str,2))
End function

pero me interesaria que por ejemplo si le paso la frase:
"JUAN SIN MIEDO" me devuelva "Juan Sin Miedo"
o si le paso "MADRID(ESPAÑA)" me devuelva "Madrid(España)"

asi que ademas de los espacios en blanco deberia detectar caracteres tipo -.,:+() para capitalizar la letra siguiente.


gracias

Preguntas similare

Leer las respuestas

#1 Javier
05/08/2005 - 11:50 | Informe spam
He encontrado esto, y funciona mejor
http://www.asp101.com/samples/pcase.asp
http://www.asp101.com/samples/downl...case%2Easp

pero aun me falta que me detecte caracteres especiales ",:()-+_",
para que me capitalice la siguiente letra.


"Javier" escribió en el mensaje news:
como Capitalizar frases
me gustaria una funcion para capitalizar frases.

De momento con esta me capitaliza la primera palabra de la frase:
Function Capital(str)
Capital=Ucase(left(str,1)) & Lcase(mid(str,2))
End function

pero me interesaria que por ejemplo si le paso la frase:
"JUAN SIN MIEDO" me devuelva "Juan Sin Miedo"
o si le paso "MADRID(ESPAÑA)" me devuelva "Madrid(España)"

asi que ademas de los espacios en blanco deberia detectar caracteres tipo -.,:+() para capitalizar la letra siguiente.


gracias

Respuesta Responder a este mensaje
#2 Nuno Santos
05/08/2005 - 12:13 | Informe spam
Javier sólo unos tips...
Puedes hacer una función que te percorra la string toda e dentro del for
verificas si es una letra e está en minusculas, algo asin:

VB6.0
'Option Explicit
'Atención con los acientos e con el "ñ", pero es sólo una idea de como lo
puedes hacer...
Private Sub Form_Load()
mStr = "hola MUndo ñ" ' no passa el ñ para Ñ
For i = 1 To Len(mStr)

aux = Mid(mStr, i, 1) 'busca o caracter
If Asc(aux) >= 97 And Asc(aux) <= 122 Then
'passas para UCASE
aux = UCase(aux)
End If
myStr = myStr & aux

Next

MsgBox (myStr)
End Sub



Nuno Santos
nunos7[REMOVER]@hotmail.com

"Javier" wrote in message
news:
como Capitalizar frases
me gustaria una funcion para capitalizar frases.

De momento con esta me capitaliza la primera palabra de la frase:
Function Capital(str)
Capital=Ucase(left(str,1)) & Lcase(mid(str,2))
End function

pero me interesaria que por ejemplo si le paso la frase:
"JUAN SIN MIEDO" me devuelva "Juan Sin Miedo"
o si le paso "MADRID(ESPAÑA)" me devuelva "Madrid(España)"

asi que ademas de los espacios en blanco deberia detectar caracteres
tipo -.,:+() para capitalizar la letra siguiente.


gracias

Respuesta Responder a este mensaje
#3 Nuno Santos
05/08/2005 - 18:29 | Informe spam
Perdona Javier la resposta que coloquei no era la indicada, ahora que veo no
es lo que necessitas...
Pero en la función que te envio puedes alterarla para que te verifique
cuando es un caracter especial e que la letra a seguir a este tiene que ser
alterada...


Nuno Santos


Nuno Santos
nunos7[REMOVER]@hotmail.com

"Javier" wrote in message
news:
He encontrado esto, y funciona mejor
http://www.asp101.com/samples/pcase.asp
http://www.asp101.com/samples/downl...case%2Easp

pero aun me falta que me detecte caracteres especiales ",:()-+_",
para que me capitalice la siguiente letra.


"Javier" escribió en el mensaje
news:
como Capitalizar frases
me gustaria una funcion para capitalizar frases.

De momento con esta me capitaliza la primera palabra de la frase:
Function Capital(str)
Capital=Ucase(left(str,1)) & Lcase(mid(str,2))
End function

pero me interesaria que por ejemplo si le paso la frase:
"JUAN SIN MIEDO" me devuelva "Juan Sin Miedo"
o si le paso "MADRID(ESPAÑA)" me devuelva "Madrid(España)"

asi que ademas de los espacios en blanco deberia detectar caracteres
tipo -.,:+() para capitalizar la letra siguiente.


gracias





Respuesta Responder a este mensaje
#4 Javier
06/08/2005 - 15:28 | Informe spam
partiendo de esta función que me transformaria por ejemplo:
"ESTA FRASE ES UNA (CAÑA)" en. "Esta Frase Es Una (caña)"
¿como hago para que tambien me capitalice la palabra entreparentesis?
oseapara que me devuelva: "Esta Frase Es Una (Caña)",
he oprobado a hacer cambios pero no doy con el codigo correcto.

<%
Function pcase(sValue)

iPos = 1
Do While InStr(iPos, sValue, " ", 1) <> 0
iSpace = InStr(iPos, sValue, " ", 1)
sTemp = sTemp & UCase(Mid(sValue, iPos, 1))
sTemp = sTemp & LCase(Mid(sValue, iPos + 1, _
iSpace - iPos))
iPos = iSpace + 1
Loop

sTemp = sTemp & UCase(Mid(sValue, iPos, 1))
sTemp = sTemp & LCase(Mid(sValue, iPos + 1))

pcase = sTemp
End Function
%>




"Nuno Santos" <nunos7[REMOVE]@hotmail.com> escribió en el mensaje news:
Perdona Javier la resposta que coloquei no era la indicada, ahora que veo no es lo que necessitas...
Pero en la función que te envio puedes alterarla para que te verifique cuando es un caracter especial e que la letra a seguir a
este tiene que ser alterada...


Nuno Santos


Nuno Santos
nunos7[REMOVER]@hotmail.com

"Javier" wrote in message news:
He encontrado esto, y funciona mejor
http://www.asp101.com/samples/pcase.asp
http://www.asp101.com/samples/downl...case%2Easp

pero aun me falta que me detecte caracteres especiales ",:()-+_",
para que me capitalice la siguiente letra.


"Javier" escribió en el mensaje news:
como Capitalizar frases
me gustaria una funcion para capitalizar frases.

De momento con esta me capitaliza la primera palabra de la frase:
Function Capital(str)
Capital=Ucase(left(str,1)) & Lcase(mid(str,2))
End function

pero me interesaria que por ejemplo si le paso la frase:
"JUAN SIN MIEDO" me devuelva "Juan Sin Miedo"
o si le paso "MADRID(ESPAÑA)" me devuelva "Madrid(España)"

asi que ademas de los espacios en blanco deberia detectar caracteres tipo -.,:+() para capitalizar la letra siguiente.


gracias









Respuesta Responder a este mensaje
#5 JESE
07/08/2005 - 12:57 | Informe spam
Javier:

Esta función lo hace. Como ves, la he probado a conciencia.-

<%
Dim sValue
sValue = "capitalizing"
response.write "<br>""" & sValue & """"
response.write "<br>""" & sCapFirstWords( sValue ) & """"
sValue = "(ok)"
response.write "<br>""" & sValue & """"
response.write "<br>""" & sCapFirstWords( sValue ) & """"
sValue = "this text string was capitalized (i espect that do it)"
response.write "<br>""" & sValue & """"
response.write "<br>""" & sCapFirstWords( sValue ) & """"
sValue = "ESTA FRASE ES UNA (CAÑA)"
response.write "<br>""" & sValue & """"
response.write "<br>""" & sCapFirstWords( sValue ) & """"


Function sCapFirstWords( sValue )
Dim i, iPos
Dim sTemp: sTemp = sValue
For iPos = 1 To Len( sTemp )
If Mid( sTemp, iPos, 1 ) = " " Or _
Mid( sTemp, iPos, 1 ) = "(" Then
Else
sTemp = Left( sTemp, iPos - 1 ) & _
UCase( Mid( sTemp, iPos , 1 ) ) & _
LCase( Mid( sTemp, iPos + 1 ) ) 'Los restantes caracteres a
minúsculas
for i = iPos + 1 to Len( sTemp )
If Mid( sTemp, i, 1 ) = " " Or _
Mid( sTemp, i, 1 ) = "(" Then
exit for '
End If
next
iPos = i
End If
Next
sCapFirstWords = sTemp '''
End Function
%>


Saludos.

José Enrique
http://jese.info
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida