Clipper On Line • Ver Tópico - Set device to printer

Set device to printer

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

Moderador: Moderadores

 

Set device to printer

Mensagempor microvolution » 01 Dez 2015 13:09

asimoes escreveu:Faz o seguinte, usa a função hb_DirBase()+Cli

prezado professor, coloco em que momento da programação?
- no momento do public CLI (antes ou depois)
- no momento do primeiro SET PRINTER TO &CLI (antes ou depois)
- no momento do type/del (antes ou depois)

???
vlw!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

Set device to printer

Mensagempor JoséQuintas » 01 Dez 2015 17:43

Vai ver o Windows viu SICCA, e pensou que era o zica vírus... rs

Está com vários problemas, e não apenas um.
Não adianta querer resolver tudo de uma vez que não dá, e não existe solução mágica.

1) Arquivo temporário e excesso de macro
2) Impressora texto e impressora gráfica não são a mesma coisa
3) Porta LPT e porta USB não é o que define a forma de imprimir, e sim a impressora.

1) Arquivo temporário

confira se o nome está certo.
Confira qual é a pasta atual.
Confira se tem direito de gravação na pasta.

Não sabe como fazer isso?

Vai lá no fonte, antes de imprimir, e coloca pra mostrar na tela.
Pode usar tudo que conhece pra isso.

CLS
@ 2, 0 SAY "O nome de arquivo que vai ser usado é:"
@ 3, 0 SAY CLI + ".prn"
@ 4, 0 SAY "A pasta atual é:"
@ 5, 0 SAY CurDir()
Inkey(0)

MemoWrite( "testa.bat", "DIR /p " + Chr(13) + Chr(10) + "PAUSE" + Chr(13) + Chr(13) )
RUN ( "testa.bat" )

SET PRINTER TO ( cli + ".PRN" )
...


Começa por esse básico.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Set device to printer

Mensagempor microvolution » 01 Dez 2015 18:33

ANDRIL escreveu:Lembre-se de tar direito a "TODOS" os usuários para esta pasta que está no disco D:

prezado já tentei de quase tudo, inclusive de criar o usuário TODOS nesta e nas suas SUB-PASTAS com direitos de ler/gravar/editar.

Bom, alguém me passou, e não sei mais quem foi de V.Sas. (me desculpe pela falta de atenção) o seguinte código apenas para teste:
func main()
cArqPrint := 'd:\temp\arquivo.prn'
SET CONSOLE OFF
SET DEVICE TO PRINT
[i][b]SET PRINTER TO &cArqPrint.[/b][/i]
SET PRINT ON
? Time()
SET PRINT OFF
SET PRINTER TO
SET DEVICE TO SCREEN
SET CONSOLE ON
retu nil


recompilei-o usando a HMG 3.0.35 e ao executar apareceu a seguinte tela de erro na linha destacada acima:
erro setdevice.jpg


Bom, o que o prezado (disse)
JoséQuintas escreveu:Vai ver o Windows viu SICCA, e pensou que era o zica vírus... rs

de repente é mesmo...
só pra lembrar, executei esse PRN1.EXE (nome que dei para o PRN1.PRG e seu executável) na unidade de boot (lembrando que uso dual boot: win 10 64 bit c/ possibilidade de win xp 32 bit) do win 10 (c:\mvinfo\hb32\exemplos\setdevice), bem como na raíz das unidades D:\ e E:\, só pra ter certeza que não foi interferência dos windows.
Também, desativei o Windows Defender e todas as funções do Comodo FireWall.

Bom, por enquanto, vou tentar o teste do prezado professor "JQuintas"...
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

Set device to printer

Mensagempor asimoes » 01 Dez 2015 18:56

Eu passei o código para você testar.

Modifica só uma coisa, troca a extensão .prn para .txt, tô desconficado que o windows 10 não está gostando desta extensão.
Ou é uma variação maluca do zica virus. :))

Só uma coisa a pasta d:\temp existe?
►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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Set device to printer

Mensagempor ANDRIL » 01 Dez 2015 18:59

Faz um teste pelo prompt, crie um arquivo na sua pasta do sistema e depois use o COPY ou XCOPY do próprio sistema operacional para fazer a cópia para a pasta que esta tentando pelo seu sistema, veja se da erro de permissão ou caminho não encontrado, que é o que esta acontecendo no seu código. É como se não entendesse que D:\TEMP\ARQUIVO.PRN é arquivo e sim um diretório que obviamente não existe. Se o teste apresentar problema já sabe que deve verificar seu Windows, se não der erro, é problema na sua programação.

Tente tirar o "." que usa para término da macro. Coloque a extensão já embutida na macro como eu lhe disse acima. Faz o teste desse jeito e ve se também ocorre o problema. Tente também mudar a extensão do arquivo para "TXT", quando se direcionada uma comando DOS exemplo TYPE usando > PRN o sistema operacional criar um arquivo interno PRN pode ser que esteja ai o conflito. Nessa altura, já estou atirando para todos os lados, rs!

cARQ = "ARQUIVO.PRN"
SET PRINTER TO "&cARQ"


Boa sorte!
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar de usuário

ANDRIL
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1270
Data de registro: 06 Jul 2004 00:44
Curtiu: 12 vezes
Mens.Curtidas: 46 vezes

Set device to printer

Mensagempor microvolution » 01 Dez 2015 19:04

JoséQuintas escreveu:1) Arquivo temporário

Prezado professor JQuintas e demais, testei seu código e foi bastante útil e interessante pra que a gente (juntos) descubra o que está acontecendo.
Antes fiz algumas mudanças para que o mesmo funcionasse na HMG 3.0.35 (não quis testá-lo com a HMG 3.0.46 e 3.4.0 por enquanto), vejam:
func main()
  #include <hmg.ch>
  CLS
  CLI :='TESTE'
  @ 2, 0 SAY "O nome de arquivo que vai ser usado é:"
  @ 3, 0 SAY CLI + ".prn"
  @ 4, 0 SAY "A pasta atual é:"
  @ 5, 0 SAY CurDir()
  Inkey(0)

  MemoWrit( "testa.bat", "DIR /p " + Chr(13) + Chr(10) + "PAUSE" + Chr(13) + Chr(13) )
  RUN ( "testa.bat" )
  SET PRINTER TO ( cli + ".PRN" )
retu nil


O resultado foi surpreendente, gerando 2, telas, conforme abaixo, vejam por favor:
prn2 tela1.jpg

prn2 tela2.jpg


Bom, não, ótimo, pelo exemplo aqui, deu pra perceber que há alguma coisa (código) no meu APLICATIVO Sicca que impede a criação do conteúdo da variável &CLI, pois aqui neste pequeno exemplo, ele criou até um arquivo TESTA.BAT com os comandos:
DIR/P e
PAUSE (além dos chr).

Criou também um arquivo de nome TESTE.PRN em branco, o qual, acredito que está em branco, pois não criamos nenhum @ prow ou pcol para que gravasse nele.

Então, prezados, o que pode ser ou estar acontecendo no meu aplicativo que exatamente no WINDOWS 10 não cria o conteúdo da variável "CLI"?
O QUE ME DEIXA DESCONFORTÁVEL - no meu pouco conhecimento, é, que deveria aparecer algum tipo de mensagem de erro quando o SET PRINTER TO &CLI..PRN fosse acionado e o arquivo não pudesse ser gravado...

que coisa não?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

Set device to printer

Mensagempor asimoes » 01 Dez 2015 19:09

Fiz um teste aqui, repetindo a minha máquina é windows 10, antivirus avast
Eu criei a pasta d:\temp

Compilei o programa abaixo, executou e criou o arquivo teste.prn

Grande mistério!

Faz um teste pra gente, desabilita o seu antivirus pra ver o que acontece.
FUNCTION MAIN()
      cArqPrint:="D:\temp\teste.prn"
      SET CONSOLE OFF
      SET DEVICE TO PRINT
      SET PRINTER TO &cArqPrint.
      SET PRINT ON
      @ 0, 0 SAY Time()
      DesligaImp()
RETURN Nil
►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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Set device to printer

Mensagempor asimoes » 01 Dez 2015 19:17

Vamos verificar se é u problema da vsersão hmg/harbour que você tem.

Estou anexando um exe compactado para você testar, este executável foi compilado com harbour 3.4

Ele cria o arquivo teste.prn na pasta d:\temp

Veja o post anterior.
Anexos
winprn.zip
Programa teste
(580.93 KiB) Baixado 59 vezes
►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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Set device to printer

Mensagempor microvolution » 01 Dez 2015 19:22

asimoes escreveu:Eu criei a pasta d:\temp

Prezado, é para criar manualmente a pasta D:\TEMP ou o pequeno aplicativo a criará sozinho?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

Set device to printer

Mensagempor asimoes » 01 Dez 2015 19:23

Mais uma informação:

ERRO: DOS ERROR 3
DESCRIÇÃO: Caminho não encontrado
►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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Set device to printer

Mensagempor asimoes » 01 Dez 2015 19:24

Prezado, é para criar manualmente a pasta D:\TEMP ou o pequeno aplicativo a criará sozinho?


Você tem que criar.
►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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Set device to printer

Mensagempor asimoes » 01 Dez 2015 19:26

Vamos lá:

1-Cria a pasta D:\TEMP
2-Baixa o programa que eu postei acima
3-Descompacta o zip
4-Executa o programa
5-Verifica a pasta D:\TEMP se não der erro.
►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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Set device to printer

Mensagempor asimoes » 01 Dez 2015 19:28

Se o teu sistema é console, acredito não ser necessário o include hmg.ch
►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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Set device to printer

Mensagempor microvolution » 01 Dez 2015 19:34

gente, como disse um dos companheiros logo acima, "nesta altura do campeonato estamos dando tiro para tudo quanto é lado"...
até eu mesmo, já nem sei mais o que estou fazendo... como diz o provérbio popular:
"ONCOTÔ, DONCOVIM, PRONCOVÔ"... kkkk

Bom, fiz a criação manual da pasta D:\TEMP e executei novamente o aplicativozinho e infelizmente, ele gerou o arquivo: "ARQUIVO.PRN" dentra da pasta D:\TEMP com o conteúdo de uma hora atual: 20:23:45...
eu disse infelizmente, pois isso prova que o problema está no meu código, aqui no win 10...

já tô :P doidin... doidin... doidin...

bom, vamos fazer mais um teste com o que o prezado professor "asimoes" pediu com o WinPrn...
vou testar e postar o resultado...
enquanto isso... na bate clipperna, alguém tente descobrir o que pode ter no meu código que está impedindo a criação do conteúdo da variável &CLI..PRN, aliás, para desencargo de consciência mais uma vez, eliminei todas as macros da &CLI..PRN e apenas deixei CLI.PRN pois é só pra teste...

Ah!, vou testar também, mudando de CLI.PRN para CLI.TXT como vários já me pediram por diversas vezes e isso ainda não o fiz... nessa altura do campeonato... qualquer tentativa é lucro!!!
ufa!!!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

Set device to printer

Mensagempor asimoes » 01 Dez 2015 19:49

Deve ter algum problema nesta versão do harbour 3.2 que você tem.

Outra coisa, quanto ao include hmg.ch remove ele do teu teste e veja se algo acontece.
►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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Anterior Próximo



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Bing [Bot] e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro