Ver Mensaje Individual
  #10 (permalink)  
Antiguo 23/02/2005, 14:53
rpolanco
 
Fecha de Ingreso: febrero-2005
Mensajes: 2
Antigüedad: 20 años, 2 meses
Puntos: 0
Aquí teneis una función bastante completa para la conversión de un texto a versales. Las palabras excepcionales de la función que se encuentren dentro del texto no se tocarán.

Código:
<%
'***********************************************************************************
' La función LetrasVersales devuelve una cadena de texto con formato Texto Versal  *
'***********************************************************************************

Function LetrasVersales(strText)
	PalabrasExcepcionales = "y,sus,al,el,la,los,las,es,son,sean,un,uno,una,unos,unas,da,donde,se,que,del,ello,ella,ellos,ellas,a,ante,bajo,cabe,con,contra,de,desde,en,entre,hasta,hacia,para,por,según,segun,si,sí,so,sobre,tras,BBB,BIC,CYL,JCYL,I,II,III,VI,VII,VIII,IX,X,XI,XII,XIII,XIV,XV,XVI,XVII,XVIII,XIX,XX,XXI,XXII,I.,II.,III.,VI.,VII.,VIII.,IX.,X.,XI.,XII.,XIII.,XIV.,XV.,XVI.,XVII.,XVIII.,XIX.,XX.,XXI.XXII."
	arrayLetrasVersales = Split(strText, " ")
	arrayPalabrasExcepcionales = Split(PalabrasExcepcionales, ",")
	For arrayIdxLV = 0 To UBound(arrayLetrasVersales)
		If Len(arrayLetrasVersales(arrayIdxLV)) > 0 Then
			Procesar = True
			ProcesarExcepcion = True
			If arrayIdxLV > 0 Then
				If InStr(arrayLetrasVersales(arrayIdxLV - 1), ".") <> 0 Or InStr(arrayLetrasVersales(arrayIdxLV), "(") <> 0 Then
					ProcesarExcepcion = False
				End If
			End If
			If arrayIdxLV > 0 And ProcesarExcepcion = True Then
				For arrayIdxPE = 0 To UBound(arrayPalabrasExcepcionales)
					If UCase(arrayPalabrasExcepcionales(arrayIdxPE)) = UCase(arrayLetrasVersales(arrayIdxLV)) Then
						arrayLetrasVersales(arrayIdxLV) = arrayPalabrasExcepcionales(arrayIdxPE)
						Procesar = False
					End If
				Next
			End If
			If Procesar = True Then
				If Left(arrayLetrasVersales(arrayIdxLV), 1) = "(" Then
					If Len(arrayLetrasVersales(arrayIdxLV)) > 1 Then
						arrayLetrasVersales(arrayIdxLV) = UCase(Left(arrayLetrasVersales(arrayIdxLV), 2)) & LCase(Right(arrayLetrasVersales(arrayIdxLV), Len(arrayLetrasVersales(arrayIdxLV)) - 2))
					Else
						arrayLetrasVersales(arrayIdxLV) = UCase(Left(arrayLetrasVersales(arrayIdxLV), 1)) & LCase(Right(arrayLetrasVersales(arrayIdxLV), Len(arrayLetrasVersales(arrayIdxLV)) - 1))
					End If
				Else
					arrayLetrasVersales(arrayIdxLV) = UCase(Left(arrayLetrasVersales(arrayIdxLV), 1)) & LCase(Right(arrayLetrasVersales(arrayIdxLV), Len(arrayLetrasVersales(arrayIdxLV)) - 1))
				End If
			End If
		End If
	Next
	LetrasVersales = Join(arrayLetrasVersales, " ")
End Function
%>