Limpando caracteres de uma string

Delphi

17/01/2005

Olá pessoal, tudo bem?
Tenho a seguinte dúvida:
tenho uma string que seu conteúdo é 000.000.000-00, ou seja, um número de CPF, só que preciso tirar os caracteres ponto ( . ) e traço/hífen ( - ). Tentei montar uma função para isso, mas não tive muito sucesso! Existe algum recurso no próprio Delphi para isso? Estou utilizando o Delphi 7 Enterprise.

Obrigado pelas dicas! :-)


Jorgeolimpia

Jorgeolimpia

Curtidas 1

Melhor post

Marcio.theis

Marcio.theis

17/01/2005

eu utilizo a seguinte função:

function Remove(str: string):string;
var
   x: integer;
   st: string;
begin
st:=´´;
for x:=1 to length(str) do
    begin
    if (str[x] <> ´-´) and
       (str[x] <> ´.´) and
       (str[x] <> ´,´) and
       (str[x] <> ´/´) then
    st:=st + str[x];
    end;
Remove:=st;
end;



GOSTEI 1

Mais Respostas

Mr Razor

Mr Razor

17/01/2005

edit.clear; :twisted:


GOSTEI 0
Pistesil

Pistesil

17/01/2005

Nao e exatamente oq vc esta procurando, mas talvez possa ajudar

var temp:string;
      i:integer;


temp:=´´;
for i:=1 to length(campo) //campo e a variavel q vc quer remover os . e -
begin
if ((campo[i]<>´.´) and (campo[i]<>´-´)) then
temp:=temp+campo[i];
end;
campo:=temp


acho q é isso naun testei para ver se funciona.


GOSTEI 0
Adisson

Adisson

17/01/2005

Caro Amigo

Se Voce estiver usando o componente MaskEdit e queira tirar esses caracteres apenas na atribuições basta ir na propriedade ´EditMask´ e desmarcar a Opção ´Save Literal Caracteres.


GOSTEI 0
Josafat

Josafat

17/01/2005

vc poderia utilizar o stringreplace assim:

VarString := Stringreplace(quotedstr(varCPF),´.´,´´[rfReplaceAll]);
varCPF := Stringreplace(quotedstr(VarString),´-´,´´[]);

veja se isto resolve depois posta aih...


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

17/01/2005

você pode criar uma função para isso:

function RetiraSujeiras(Sujeiras, Texto: string): string;
var
    i: integer;
begin
    Result := ´´;
    if Texto = ´´ then exit;
    for i := 1 to Length(Texto) do
        if Pos(Texto[i],Sujeiras)=0 then
            Result := Result + Texto[i];
end;

a sintaxe seria:

Resultado := RetiraSujeiras(´ ./-´,CampoComCNPJ);
Resultado := RetiraSujeiras(´() .´,CampoComTelefone);
Resultado := RetiraSujeiras(´ .{}-´,CampoComInscEst);


GOSTEI 1
Anderson Souza

Anderson Souza

17/01/2005

Olá pessoal, tudo bem?
Tenho a seguinte dúvida:
tenho uma string que seu conteúdo é 000.000.000-00, ou seja, um número de CPF, só que preciso tirar os caracteres ponto ( . ) e traço/hífen ( - ). Tentei montar uma função para isso, mas não tive muito sucesso! Existe algum recurso no próprio Delphi para isso? Estou utilizando o Delphi 7 Enterprise.

Obrigado pelas dicas! :-)



Boa noite tenho uma função que criei para limpar os caracteres.


function TUDMDados.LimpaCaracter(Valor: string): String;
   var i,j,posicao, tamanho :integer;
   r, vlr, resultado : string;
begin
    posicao := 1;
    r := Valor;
    tamanho := Length(Valor);

    if Valor <>'' then

    begin
      for i := 1 to tamanho do
      if ((Valor[i] = '0') or
          (Valor[i] = '1') or
          (Valor[i] = '2') or
          (Valor[i] = '3') or
          (Valor[i] = '4') or
          (Valor[i] = '5') or
          (Valor[i] = '6') or
          (Valor[i] = '7') or
          (Valor[i] = '8') or
          (Valor[i] = '9')) then
      begin
        vlr := vlr + copy(valor,i,posicao);
      end else
      begin
        vlr := vlr;
      end; 

  end;
  Result := vlr;

end;[code=delphi]
[/code]

GOSTEI 0
POSTAR