Página 1 de 1

SUBSTITUIR OU EXCLUIR CARACTERES EM ARQUIVOS

Enviado: 04 Mai 2005 19:01
por coutinhosc
OI AMIGOS,

EU PRECISO DE CRIAR UM PROGRAMA QUE LEIA ARQUIVOS TEXTO (MAS COM QUALQUER EXTENSAO) E SUBSTITUA UM CARACTER POR OUTRO DENTRO DE ARQUIVO, SENDO QUE ESTE TEM VARIAS LINHAS.

ASSIM EU PODERIA CHAMAR ELE DENTRO DE UM .BAT PARA RODAR PARA VARIOS ARQUIVOS E COM PARAMETROS DIFERENTES, POR EXEMPLO

PROCESSA.EXE ARQUIVO.TXT |;|,
Aqui ele iria abrir o arquivo.txt e substituir todos os pontos e virgulas por virgulas.

PROCESSA.EXE ARQUIVO.CSV |"
Aqui ele iria abrir o arquivo.csv e remover todas as ASPAS que o arquivo tiver, inclusive removendo o espaço onde estava a ASPAS

OU SEJA, SE FOR PASSADO APENAS O PRIMEIRO PARAMETRO ELE VAI EXCLUIR TODAS AS CORRENCIAS DAQUELE CARACTER DENTRO DO ARQUIVO

SE FOR PASSADO OS DOIS PARAMETROS ELE IRA SUBSTITUIR TODAS AS OCORRENCIAS

POR FAVOR, QUEM PUDER ME ENVIAR UM CODIGO QUE FAÇA ISSO COM O CLIPPER, FAVOR ENVIAR COM URGENCIA PARA coutinhosc@hotmail.com

GRATO

MARCELO.

Enviado: 04 Mai 2005 21:37
por Toledo
Marcelo,

Segue abaixo um exemplo do que você pode fazer:

Código: Selecionar todos

IF FILE("ARQUIVO.TXT")
  EDI_ARQ("ARQUIVO.TXT",";",",")
ENDIF
IF FILE("ARQUIVO.CSV")
  EDI_ARQ("ARQUIVO.CSV",",","")
ENDIF


PROC EDI_ARQ(v_Arq,v_car1,v_car2)
v_car1=IF(v_car1=NIL,";",v_car1)
v_car2=IF(v_car2=NIL,",",v_car2)
nfile:=FOPEN(v_Arq,2)
IF FERROR()!=0
 RETU
ENDIF
npos:=0
DO WHILE npos>=0
 IF (npos:=GT_FLocate(nfile,v_car1))>=0
  FSEEK(nfile,npos)
  IF FWRITE(nfile,v_car2,1)!=1
   EXIT
  ENDIF
 ENDIF
ENDDO
FCLOSE(nfile)
RETU
Neste exemplo estou usando uma função da biblioteca GT-LIB que você pode copiar no link abaixo:

https://pctoledo.org/forum/dload. ... ile_id=150

Abraços,