Funcao - troca e alinha |
Top Previous Next |
Function TrocaString(Original,Nova,St:String;IgnoreUpperLowerCase:Boolean):String; var I:Integer; S:String; begin S := St;
If IgnoreUpperLowerCase then While Pos(AnsiUpperCase(Original),AnsiUpperCase(S))>0 do begin I := Pos(AnsiUpperCase(Original),AnsiUpperCase(S)); Delete(S, I, Length(Original)); Insert(Nova, S, I); end else While Pos(Original,S)>0 do begin I := Pos(Original,S); Delete(S, I, Length(Original)); Insert(Nova, S, I); end; Result := S; end;
{ Estas tres funcoes abaixo tem grande utilitade ao usar texto mono-espacado. Ex: S := AlinhaEsq('GRUPO',30,'.'); Devolve: S = 'GRUPO.......................'; //25 pontos Ex2: s := AlinhaDir('1.345,40,10,' '); Devolve: S = ' 1.345,40'; // Poe espacos em branco na frente Ex3: S := AlinhaCentro('1234567890',30,'-'); Devolve S = '----------1234567890----------'; // Centraliza }
function AlinhaEsq(const Palavra:String; Tamanho: Integer; Caracter: char = #32):String; var S:String; I:Integer; begin S := Palavra; For I:=1 to (Tamanho-Length(Palavra)) do S := S + Caracter; // Se a palavra for maior que tamanho corta If Length(Palavra) > Tamanho then Delete(S,Tamanho+1,Length(Palavra)-Tamanho); Result := S; end;
function AlinhaDir(const Palavra:String; Tamanho: Integer; Caracter: char = #32):String; var S:String; I:Integer; begin S := Palavra; For I:=1 to (Tamanho-Length(Palavra)) do S := Caracter + S; // Se a palavra for maior que tamanho corta If Length(Palavra) > Tamanho then Delete(S,Tamanho+1,Length(Palavra)-Tamanho); Result := S; end;
function AlinhaCentro(const Palavra:String; Tamanho: Integer; Caracter: char = #32):String; var S: string; I: Integer; begin S := Palavra; I := 0; // Coloca o caracter na frente e atrás while Length(S) < Tamanho do begin Inc(I); if Odd(I) then S := S + Caracter else S := Caracter + S; end; // Se a Palavra for maior tira na frente e atras while Length(S) > Tamanho do begin Inc(I); if Odd(I) then Delete(S,1,1) else Delete(S,Length(S),1); end; Result := S; end; |