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) |