PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 25 → WX - Exemplos de Código para Capitalizar um texto (Deixar as primeiras letras maiúsculas)
WX - Exemplos de Código para Capitalizar um texto (Deixar as primeiras letras maiúsculas)
Iniciado por BOLLER, 08,nov. 2016 12:58 - No hay respuesta
Miembro registrado
3.659 mensajes
Popularité : +175 (223 votes)
Publicado el 08,noviembre 2016 - 12:58
Prezados,

Exemplos de Código para Capitalizar um texto (Deixar as primeiras letras maiúsculas)

Procedure WX Capitalize
Procedure Capitalize(LOCAL Texto)

ChangeCharset(charsetOccidental) // SEM ACENTO

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


:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/