Varrer um TXT e apagar linhas

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Varrer um TXT e apagar linhas

Mensagem por marcos.gurupi »

Caro, eu tenho um arq. do SPED TXT q eh criado pela ECF da daruma nele consta o registro C425 eu quero apenas varrer este arq. e eliminar as linhas q constao com o C425. Nao queria mexer com dbf temporario. Alguem saberia como fazer isso?

Código: Selecionar todos

|C425|00003|2000,000|un|8000,00|0,00|0,00|
|C425|000075|1000,000|un|13000,00|0,00|0,00|

Marcos Roberto
Marcos Roberto
NetService Software
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Varrer um TXT e apagar linhas

Mensagem por alxsts »

Olá!

Só vejo uma saida:

abrir o TXT origem e ler sequencialmente, linha a linha até o fim, procurando pelo código "|C425".
Se a linha não contiver o código, gravar esta linha no TXT de saída. Se tiver o código, ignorar a linha e ler a próxima.


Veja o tópico Fread em TXT com tamanho variável de linha... para um exemplo de leitura e busca dentro de um TXT.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Varrer um TXT e apagar linhas

Mensagem por Jairo Maia »

Olá Pessoal,

Como em [x]Harbour pode carregar texto maior que 64K, uma forma simplificada para isso, já que a premissa é fixa e não precisa de analise em cada linha, também pode usar assim:

Código: Selecionar todos

Function Main()
Local i, cArqOld, cArqNew:="", nLines, cLine, Eol:=Chr(13)+Chr(10)
cArqOld := MemoRead( "Seu_Arquivo.txt" )
nLines := MlCount( cArqOld,254 )
For i=1 To nLines
 cLine := MemoLine( cArqOld, 254, i )
 If ! ( "|C425|" $ cLine )
  cArqNew+=cLine + Eol
 EndIf
Next
MemoWrit( "Filtrado.txt", cArqNew )
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Varrer um TXT e apagar linhas

Mensagem por marcos.gurupi »

Obrigado a todos pela contribuicao. E obrigado principalmente ao amigo Jairo, o seu exemplo era o q eu procura. "Enxuto"

Marcos Roberto.
Marcos Roberto
NetService Software
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Varrer um TXT e apagar linhas

Mensagem por alxsts »

Olá!

Muito bom mesmo. E simples...

A lógica é a mesma. Mas eu não pensei nessas funções de leitura.
[]´s
Alexandre Santos (AlxSts)
Responder