Prezados,
Exemplos de Código para Capitalizar um texto (Deixar as primeiras letras maiúsculas)
Procedure WX Capitalize
Procedure Capitalize(LOCAL Texto)
ChangeCharset(charsetOccidental)
IF Texto <> Null AND Texto <> ""
Texto = NoAccent(Texto)
Texto = Lower(Texto)
Texto = Upper(Middle(Texto,1,1)) + Middle(Texto,2,Length(Texto))
nEspaco01 is int = PositionOccurrence(Texto," ",firstRank,FromBeginning) + 1
IF nEspaco01 > 1 THEN
Texto = Middle(Texto,1,nEspaco01-1) + Upper(Middle(Texto,nEspaco01,1)) + Middle(Texto,nEspaco01+1,Length(Texto))
END
TOT is int = 0
POS1, POS2, POS3 is int = 0
TOT = Length(Texto)
LOOP (TOT)
POS1 +=1
POS2 = POS1 + 1
POS3 = POS2 + 1
IF Middle(Texto,POS1,1) = " " AND Middle(Texto,POS2,1) <> " "
Texto = Middle(Texto,1,POS1) + Upper(Middle(Texto,POS2,1)) + Middle(Texto,POS3,TOT)
END
END
Texto = Replace(Texto," Da ", " da ")
Texto = Replace(Texto," Das ", " das ")
Texto = Replace(Texto," De ", " de ")
Texto = Replace(Texto," Do ", " do ")
Texto = Replace(Texto," Dos ", " dos ")
END
RESULT(Texto)
MS SQL SERVER FUNCTION Capitalize
CREATE FUNCTION Capitalize(@Capitalize VARCHAR(1024))
RETURNS VARCHAR(1024)
BEGIN
SELECT @Capitalize = UPPER(LEFT(@Capitalize,1)) + LOWER(SUBSTRING(@Capitalize,2,LEN(@Capitalize)));
WITH TallyTableBase AS
(
SELECT
0 AS n
FROM (VALUES(0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) AS t(n)
)
SELECT
@Capitalize = REPLACE(@Capitalize, ' ' + CHAR(n.n), ' ' + CHAR(n.n))
FROM (
SELECT TOP 26 ROW_NUMBER() OVER (ORDER BY (SELECT 1)) + 64 AS n
FROM TallyTableBase a
CROSS JOIN TallyTableBase b
) AS n;
SELECT @Capitalize = REPLACE(@Capitalize,' Da ', ' da ')
SELECT @Capitalize = REPLACE(@Capitalize,' Do ', ' do ')
SELECT @Capitalize = REPLACE(@Capitalize,' De ', ' de ')
SELECT @Capitalize = REPLACE(@Capitalize,' Das ', ' das ')
SELECT @Capitalize = REPLACE(@Capitalize,' Dos ', ' dos ')
SELECT @Capitalize = REPLACE(@Capitalize,' Des ', ' des ')
RETURN(@Capitalize)
END
--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/