PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile 2024 → Capitalize Text
Capitalize Text
Started by adrianoboller, Nov., 18 2014 2:03 PM - 1 reply
Registered member
3,655 messages
Popularité : +175 (223 votes)
Posted on November, 18 2014 - 2:03 PM
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)
Registered member
3,655 messages
Popularité : +175 (223 votes)
Posted on December, 07 2019 - 4:25 PM
//Nova versão

Procedure Capitalize(Texto)

x is int

nome, resultado is string

IF Texto <> "" THEN

nQtdpalavras is int = StringCount(Texto," ") + 1

LOOP(nQtdpalavras)

x++
nome = ExtractString(Texto,x," ",FromBeginning)
IF Lower(nome) = "da" OR Lower(nome) = "das" OR
Lower(nome) = "de" OR Lower(nome) = "di" OR
Lower(nome) = "do" OR Lower(nome) = "dos"
resultado += Lower(nome) + " "
ELSE
resultado += Upper(Middle(nome,1,1)) + Lower(Middle(nome,2,Length(nome))) + " "
END

END

END

RESULT resultado


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