Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DanielTM

Remover Caracteres

Recommended Posts

fala pessoal,

 

estou aq com mais uma duvida no delphi,

 

em php quando eu precisava remover caracteres de um campo, tipo cnpj remover os (.-/) eu usava o Replace, beleza funfa legal.

 

no dephi tentei usar o replace mas nao consigo remover + de 1 caractere, por exemplo no cnpj, ou consigo tirar o (.) ou o

(-) nunca os 2 juntos. http://forum.imasters.com.br/public/style_emoticons/default/closedeyes.gif

 

exemplo, retirando e gravando no meu arquivo txt :

 

Write(arqS, StringReplace(query1.FieldByName('cgc').asstring, '.','', [rfReplaceAll]) );

 

beleza assim funciona mais só retira o (.) preciso tirar tb o (-) , como faço isso no delphi usando o replace?

 

valew, abraços http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só se colocar dois StringReplace, um dentro do outro, ou então criar uma function que remove e retorna somente os números...

fala marcio, será que voce poderia me ajudar, citando 1 exemplo das 2 maneiras que você citou, pq nao consegui fazer com 2Replace....obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usando uma função poderia fazer assim:

 

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

No seu caso iria ficar:

 

Write(arqS, RemoveChrInvalidos(query1.FieldByName('cgc').asstring));

 

Usando mais de um Replace iria ficar:

 

Write(arqS,StringReplace(StringReplace(StringReplace(query1.FieldByName('cgc').asstring,'.','',[rfReplaceAll]),'-','',[rfReplaceAll]),'/','',[rfReplaceAll]));

Compartilhar este post


Link para o post
Compartilhar em outros sites

fala marcio, você sempre me ajudando valew demais, to aprendendo muito contigo, eu achei mais viavel usar essa funçao, o programa fica mais profissional neh?então tentei colocar na minha aplicação ah função mas deu um erro da linha do for: For loop control variable must be simple local variable

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho, testei aqui e funcionou certinho...

Verifique a variavel x, deve de estar sendo alterado o valor da mesma em algum local, ou então mude o nome da variavel de x para outro nome de variavel, exemplo aux, ficando:

 

function RemoveChrInvalidos(str: string):string;var   aux: integer;   ret: string;beginret:='';for aux:=1 to length(str) do	begin	if (str[aux] <> '-') and	   (str[aux] <> '.') and	   (str[aux] <> ',') and	   (str[aux] <> '/') then	ret:=ret + str[aux];	end;RemoveChrInvalidos:=ret;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.