Página 1 de 1

Juntas um TXT existente

Enviado: 15 Set 2011 19:40
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.

Juntas um TXT existente

Enviado: 15 Set 2011 20:22
por alxsts
Olá!

Onde fica a linha em branco? No final?

Tente

Código: Selecionar todos

hFile := RTrim( MemoRead(ArqSPEDECF) )

Juntas um TXT existente

Enviado: 15 Set 2011 20:49
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.

Juntas um TXT existente

Enviado: 16 Set 2011 08:47
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()

Juntas um TXT existente

Enviado: 17 Set 2011 22:31
por marcos.gurupi
Obrigado nobre colega. Vou testar aqui.

Marcos Roberto.