DanielTM 0 Denunciar post Postado Junho 27, 2007 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
marcio.theis 3 Denunciar post Postado Junho 27, 2007 Só se colocar dois StringReplace, um dentro do outro, ou então criar uma function que remove e retorna somente os números... Compartilhar este post Link para o post Compartilhar em outros sites
DanielTM 0 Denunciar post Postado Junho 27, 2007 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
marcio.theis 3 Denunciar post Postado Junho 27, 2007 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
DanielTM 0 Denunciar post Postado Junho 27, 2007 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
marcio.theis 3 Denunciar post Postado Junho 27, 2007 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