Juntas um TXT existente

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

Juntas um TXT existente

Mensagem por marcos.gurupi »

Caros, eu aproveito o txt criado pela ECF da BEMATECH e Daruma com os arq. SPED que crio no sistema, acontece que quando faco esse processo fica uma linha em branco no arq. sped. Como eu faco para que essa linha em branco nao seja criado?

Segue o codigo abaixo:

Aqui eu leio o arq. jah criado pela DLL da ECF e incorporo no meu arq. txt

Código: Selecionar todos

ArqSPEDECF := SelectFile( "Arquivo SPED criado pela E.C.F.", "SPED*.TXT")
     	dbftmp:=Alltrim(Config->PasTmp)+"temp.dbf"
      IF EMPTY(ArqSPEDECF)
         MSGSTOP("É necessário escolher um arq. SPED valido","Usuario")
         Select(Areant)
      	RETURN .F.
      Endif
      MsgRun("Criando arquivo do SPED-Fiscal. Aguarde...")
   	hFile := MemoRead(ArqSPEDECF)
      IF File((dbftmp))
         FErase((dbftmp))
		ENDIF
      DBCreate((dbftmp),{{"LINE", "C", 600, 0}})
      USE (dbftmp) Exclusive Alias RemTMP New
      APPEND FROM (ArqSPEDECF) SDF
 		DBGOTOP()
      Do While !Eof()
         If SubStr(Line,1,6)="|C405|"
            nLinha_BLOCOC_C405++
         Endif
         If SubStr(Line,1,6)="|C420|"
            nLinha_BLOCOC_C420++
         Endif
         If SubStr(Line,1,6)="|C425|"
            nLinha_BLOCOC_C425++
         Endif
         If SubStr(Line,1,6)="|C460|"
            nLinha_BLOCOC_C460++
         Endif
         If SubStr(Line,1,6)="|C470|"
            nLinha_BLOCOC_C470++
         Endif
         If SubStr(Line,1,6)="|C490|"
            nLinha_BLOCOC_C490++
         Endif
			DbSkip()
  		Enddo
      zap
      dbclosearea()
		IF File((dbftmp))
         FErase((dbftmp))
		ENDIF
	   ContFim:=Len(hFile)
     	hFile:=SubStr(hFile,2,ContFim)
      Fwrite( nTMP,cSepa+hFile+CRLF )
      Aadd(wBloco_Soma_9990,{'C400',1})
      Aadd(wBloco_Soma_9990,{'C405',nLinha_BLOCOC_C405})
      Aadd(wBloco_Soma_9990,{'C420',nLinha_BLOCOC_C420})
      Aadd(wBloco_Soma_9990,{'C425',nLinha_BLOCOC_C425})
      Aadd(wBloco_Soma_9990,{'C460',nLinha_BLOCOC_C460})
      Aadd(wBloco_Soma_9990,{'C470',nLinha_BLOCOC_C470})
      Aadd(wBloco_Soma_9990,{'C490',nLinha_BLOCOC_C490})

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

Juntas um TXT existente

Mensagem por alxsts »

Olá!

Onde fica a linha em branco? No final?

Tente

Código: Selecionar todos

hFile := RTrim( MemoRead(ArqSPEDECF) )
[]´s
Alexandre Santos (AlxSts)
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

Juntas um TXT existente

Mensagem por marcos.gurupi »

Caro, tentei sua sugestao mas nao deu certo.

Isso no final do arq da ECF e o criado pelo sistema:

Código: Selecionar todos

|C425|909573|1,000|UN|26,00|0|0|
|C425|905527|1,000|UN|414,00|0|0|
|C490|000|5929|17,00|3726,36|3726,36|633,48||   //Aqui eh o final do arq. gerado pela ECF

|C990|1416|  // Aqui eh o arq. criado pelo meu sistema
|D001|1|
|D990|2|
|E001|1|

Marcos Roberto.
Marcos Roberto
NetService Software
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Juntas um TXT existente

Mensagem por asimoes »

Olá Marcos,

Fiz teste com o código abaixo e ele faz o que você tá querendo.

Código: Selecionar todos

#include "fileio.ch"

FUNCTION Main()
cTexto:="TESTE DE LINHA"
IF FILE("TESTE.TXT")
   FERASE("TESTE.TXT")
ENDIF
StrFile('',"TESTE.TXT")
FT_FUSE("TESTE.TXT")
nContador:=0
DO WHILE nContador < 10
   FT_FWRITELN( cTexto+Str(nContador), .T. )
   nContador++
   FT_FAPPEND()
ENDDO
FT_FWRITELN( cTexto+Str(nContador), FT_FEOF() )
FT_FUSE()
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
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

Juntas um TXT existente

Mensagem por marcos.gurupi »

Obrigado nobre colega. Vou testar aqui.

Marcos Roberto.
Marcos Roberto
NetService Software
Responder