impressao de cupom nao vinculado

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

cristina
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 01 Abr 2011 06:07
Localização: sao paulo

impressao de cupom nao vinculado

Mensagem por cristina »

Bom dia,
Preciso imprimir um arquivo texto no cupom nao vinculado da imp.fiscal bematech, mas este texto tem tamanho variavel de linhas e as quebras de linhas estao como @. Estou tentando com fopen() e fread(), mas nao estou conseguindo separar as linhas. Por favor se alguem puder me ajudar, agradeco muito. Uso clipper 5.1
obrigada
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: impressao de cupom nao vinculado

Mensagem por rochinha »

Amiguinha,

Use este exemplo:

Código: Selecionar todos

   cLargura        := 400
   cArquivoRetorno := "arquivo.txt"
   cText := MEMOREAD( (cArquivoRetorno) )
   nLines := MlCount(cText,cLargura)
   FOR nFor := 1 TO nLines
       cLine := MemoLine( cText, cLargura, nFor )
       ...
   NEXT
Defina cLargura como quizer, coloquei pois é o tamanho que uso para ler retornos CNAB 400.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Impressao de cupom nao vinculado

Mensagem por Pablo César »

Seja bem vinda ao fórum Cristina !

Aqui a seguir você pode contar com esta função que lê linha a linha, independente do tamanho máximo de cada linha, que foi baseada em funções de baixo nível do Clipper.

Código: Selecionar todos

#define CRLF      CHR(13)+CHR(10)

Function Ini_Read(cFile)
Local cLine:=""
Private lEof:=.f.

nHandle:=Fopen(cFile,0)
If nHandle # -1
   Do While !lEof
      cLine := ReadFile(nHandle,1024)
      // processa a linha
      ? cLine
      nLine++
   Enddo
Endif
Fclose(nHandle)
Return aRet

Static Function ReadFile(nHandle,nBuffSize)
LOCAL cRet:= cBuff:='', nPos:= nEol:= nRead:=0

cBuff:=Space(nBuffSize)
nPos:=FSeek(nHandle,0,FS_RELATIVE)
IF ( nRead:=FREAD(nHandle,@cBuff,nBuffSize) ) > 0
   IF ( nEol:=AT(CRLF,SUBSTR(cBuff,1,nRead)) ) == 0
      cRet:=SUBSTR(cBuff,1,LEN(cBuff)-1)
   ELSE
      cRet:=SUBSTR(cBuff,1,nEol-1)
      FSeek(nHandle,nPos+nEol+1,FS_SET)
   END
ELSE
   lEof:=.t.
END
Return(cRet)
É só informar o nome do arquivo, mais nada e implementar o código após de obter cada linha do arquivo.
Cristina escreveu:Uso clipper 5.1
Aconselho a colega migrar para Clipper 5.2e, é a versão mais estável, pois a 5.1 tem bugs. No site do Maligno tem um pacote que só descompactar do mesmo jeito que faria com o instalador Clipper, veja aqui: http://pub.buzinello.com/xbase/clipper/ ... talled.zip
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
cristina
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 01 Abr 2011 06:07
Localização: sao paulo

Re: impressao de cupom nao vinculado

Mensagem por cristina »

Muito obrigada pela grande ajuda!! As rotinas foram perfeitas. Obrigada mesmo!
Agora vou ver o clipper 5.2...
Abracos
Responder