SUBSTITUIR OU EXCLUIR CARACTERES EM ARQUIVOS

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

coutinhosc
Usuário Nível 1
Usuário Nível 1
Mensagens: 1
Registrado em: 04 Mai 2005 18:57

SUBSTITUIR OU EXCLUIR CARACTERES EM ARQUIVOS

Mensagem 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.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Responder