Newsgroup: it.comp.lang.vo-clipper
Titolo: Problemi di stampa con Clipper (5.2 e 5.3) su win Xp

Ho ricompilato un vecchio programma Clipper 
prima con la ver. 5.2 e poi con con CLipper 5.3 
su Windows Xp e ora con entrambe le versioni 
ho uno strano comportamento con le stampe.
La vecchia versione dell'exe funzionava bene
ora invece quando eseguo una stampa
prima che la stampante parta passano circa
30 secondi.
Per dirlo meglio se i dati da stampare sono pochi
diciamo 5-10 righe di testo ho questa attesa di 30 sec
mentre se i dati sono circa 1000 caratteri la stampa 
parte subito.
A volte la stampante (ad aghi) si ferma, stampa un 
carattere ogni secondo per 3-4 volte o poi riprende.
Ho installato il programma su tre macchine con
Win Xp e ottengo lo stesso comportamento.
Chiedo se a voi succede la stessa cosa.
grazie,
Eugenio Belli.

 ha scritto nel messaggio
news:18e5p1pbnvh0ae1ol...@4ax.com...


 Ho ricompilato un vecchio programma Clipper

Controlla di fare le seguenti operazioni prima e dopo l'invio dei caratteri 
alla stampante:
SET CONSOLE OFF
SET PRINTER TO "porta stampante"
SET PRINTER ON
// Qui invii i caratteri alla stampante con ? e ??
SET PRINTER OFF
SET PRINTER TO
SET CONSOLE ON
oppure analogamente per il SET DEVICE TO PRINT e i comandi @ ... SAY.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg
The EMG Music page:         
http://www.emagsoftware.it/emgmusic
 

EMG

 uso due funzioni,
Nelle quali non ho trovato niente di strano. Hai provato a seguire le 
indicazioni di Marco?


 ha
scritto:
Ho aggiunto quelle 4 righe in fondo al system.ini
ho rifatto il boot di win xp e ho riprovato il prg.
Purtroppo fa' come prima.
Si comporta come se stesse riempiendo
un buffer e fosse in attesa di dati.
Se i dati sono pochi resta in attesa per 30 sec
per cercare di riempire il buffer e se non arriva
altro allora stampa.
30 secondi in ogni caso sono un'esagerazione.
Scusa ma, dove hai trovato quel workaround ?
Eugenio.


EMG

 altro allora stampa.
Quindi sembra essere un timeout. Ma questo problema dovrebbe risolversi 
chiudendo lo spool con
SET PRINTER OFF
SET PRINTER TO
cosa che già fai. Può entrarci qualcosa il driver della stampante? Magari 
prova ad aggiornarlo oppure, al contrario, ad installarne uno più generico.


 Ma a voi non succede ?
Non ho provato. Credo sia inutile dato che XP virtualizza (credo) anche le 
varie LPT. Prova ad installare qualche stampante virtuale (tipo PDFCreator, 
CutePDF Writer etc.) e vedi come si comporta. Se il problema sparisce allora 
dipende dal driver della stampante.


EMG

 ha scritto nel messaggio 
news:18e5p1pbnvh0ae1ol...@4ax.com...


 di dati da stampare.
Sarebbe complicato per te provare a ricompilare il programma con xHarbour?


EMG

 ha scritto: ecco questo e' il programmino: *_____________________________________ local son:="S" local conta:=0 clear screen do while .t.    @ 1,1 say "stampo ? :" get son picture "!"    read    if son="S"        stampauna()       conta:=conta+1       @ 2,1 say "stampe eseguite : "+str(conta)    else       exit    end function stampauna() set device to print set printer on @ prow()  , 1 say repl('1',100) @ prow()+1, 1 say repl('2',100) @ prow()+1, 1 say repl('3',100) @ prow()+1, 1 say repl('4',100) @ prow()+1, 1 say repl('5',100) @ prow()+1, 1 say repl('6',100) set printer off set printer to set device to screen return .t. *_____________________________________ dopo aver eseguito una volta 'stampauna' appare : stampa eseguite:   1 ma la stampante non stampa nulla a meno che io non attenda 30 secondi oppure continui ad inviare stampe fino a riempimento del buffer fantasma. Lo strano e' che nella finestra windows del driver Generica solo testo la prima stampa appare solo dopo 30 secondi mentre se invio altre stampe appaiono subito e vanno in accodamento. per fare prima cosa devo cambiare per xHarbour ? Ciao, Eugenio. 


Francamente non ricordo dove. Si tratta di appunti che ho raccolto nel
tempo... Sono sicuro che si tratti di un problema risolvibile modificando
alcuni parametri nel system.ini o direttamente nel registry ed ho gia' fatto
qualcosa di simile presso un cliente ma non trovo piu' il documento in
formato elettronico. Qualche giorno fa mi e' passato tra le mani il testo
stampato ma ora non so piu' dove e' finito (molto ordinato sono ....).
Appena lo trovo lo posto sul ng cosi' potra' tornare utile a tutti
Ciao
Marco

 per xHarbour ?
Assolutamente niente.


 ha
scritto:
xharbour mi segnala:
Compilando
..\bin\harbour stampaon.prg -n -q0 -gc -i..\include -p -w
"bcc32" non è riconosciuto come comando interno o esterno
un programma eseguibile o un file batch
procedure main()
local son:="S"
local conta:=0
local getlist:={}
clear screen
do while .t.
   @ 1,1 say "stampo ? :" get son picture "!"
   read
   if son="S" 
      stampauna()
      conta:=conta+1
      @ 2,1 say "stampe eseguite : "+str(conta)
   else
      exit
   end
end
return


EMG

- compilato con Clipper 5.3b si blocca e non stampa proprio niente
su porta usb o parallela?
 
Eugenio.

 un programma eseguibile o un file batch
E' un problema della tua installazione di xHarbour. Sembra che cerchi di 
lanciare una file chiamato bcc32, cosa ovviamente errata.


 e non sono ancora riuscito a compilare.
Devi installarti e configurarti xHarbour correttamente.


 su porta usb o parallela?
USB. La mia stampante non ha la porta parallela.


 ha scritto nel messaggio 
news:7j76p1hb7cr1kntqg...@4ax.com...


EMG

di EXE.
Il vecchio eseguibile funzionava (e funziona ancora) correttamente.
Io ora non riesco piu' ad ottenere un exe senza quel problema
alle stampe ne' con clipper 5.2 ne' con clipper 5.3.
Ho provato con due SO (win xp) (ho un dual boot) e naturalmente 
ho lo stesso problema dal cliente.
Hai provato a compilare quel programmino che ho postato?
Confermando con invio la stampa dovrebbe stampare subito
da me non lo fa.
 

 ha scritto nel messaggio 
news:e4u7p19ap1ptgblud...@4ax.com...


PS : hai provato ad interrompere e riavviare il servizio di spooling ?
scusa ma dove?
in strumenti di amministrazione->servizi?
*________________compilo cosi'
clipper %1 -m   
*______________________________________linko cosi':
OUTPUT stampa1.exe
EXOSPACE PACKAGE NOVM
FILE stampa1,CTUSP,CTINTP
file __WAIT_B
LIB CTP
*__________________________questo e' il programmino : stampa1.prg
local son:="S"
local conta:=0
clear screen
do while .t.
   @ 1,1 say "stampo ? :" get son picture "!"
   read
   if son="S" 
      stampauna()
      conta:=conta+1
      @ 2,1 say "stampe eseguite : "+str(conta)
   else
      exit
   end
end
function stampauna()
set device to print
set printer on
@ prow()  , 1 say repl('1',100)
@ prow()+1, 1 say repl('2',100)
@ prow()+1, 1 say repl('3',100)
@ prow()+1, 1 say repl('4',100)
@ prow()+1, 1 say repl('5',100)
@ prow()+1, 1 say repl('6',100)
set printer off
set printer to
set device to screen
return .t.
*_____________________________________
 stampata.
 
 

PS : hai provato ad interrompere e riavviare il servizio di spooling ?
l'ho trovato in
Strumento di amministrazione-->servizi->spooler di stampa
ho interrotto il servizio e ho riprovato il programmino:
non va,si comporta come prima.
eugenio.
 

 e scusa il disturbo.
Figurati, nessun disturbo. Anzi, č un piacere.


 da me non lo fa.
Io, come ti ho detto, l'ho provato ma non riesco a stampare niente in nessun 
modo, neanche con una stampante virtuale. Forse perché non ho nessuna 
stampante collegata all'interfaccia parallela?
Invece compilato con xHarbour stampa regolarmente senza attese.


EMG

EMG

 potresti mandarmi il tuo batch di compilazione ?
Eccolo (controlla i percorsi):
@ ECHO OFF
SET HARBOURCMD=/a /es2 /gc0 /m /n /q /w2
SET INCLUDE=c:\xharbour\include;c:\bcc55\include
IF EXIST %1.prg c:\xharbour\harbour %1
SET HARBOURCMD=
SET INCLUDE=
IF EXIST %1.c c:\bcc55\bin\bcc32 +c:\xharbour\xharbour.cfg -c %1.c
IF EXIST %1.obj c:\bcc55\bin\ilink32 c0x32 %1.obj, %1.EXE 
@c:\xharbour\xharbour.rsp
IF ERRORLEVEL 1 PAUSE
IF NOT ERRORLEVEL 1 IF EXIST %1.exe %1
IF EXIST %1.c DEL %1.c
IF EXIST %1.obj DEL %1.obj
IF EXIST %1.tds DEL %1.tds
XHARBOUR.CFG č questo:
-5
-DHB_FM_STATISTICS_OFF
-DHB_GUI
-DHB_NO_PROFILER
-DHB_NO_TRACE
-DHB_WIN32_IO
-g50
-Ic:\xharbour\include;c:\bcc55\include
-j5
-k-
-O1
-O2
-OS
-Ov
-v-
-WC
-w
-w-inl-
XHARBOUR.RSP č questo:
/ap +
/Gn +
/Lc:\xharbour\lib;c:\bcc55\lib;c:\bcc55\lib\psdk +
/x
rtl.lib +
vm.lib +
common.lib +
lang.lib +
gtwin.lib +
rdd.lib +
dbffpt.lib +
dbfdbt.lib +
dbfntx.lib +
dbfcdx.lib +
macro.lib +
hbodbc.lib +
hbzip.lib +
ct.lib +
import32.lib +
cw32.lib +
odbc32.lib +
debug.lib


@c:\xharbour\xharbour.rsp
questa riga fa' apparire una finstra windows
che chiede con quale programma deve aprire il file
...
Ilink32 mi da' errori come questo:
Warning: Unable perform incremental link - performing full link...
Error: Unresolved external '_hb_vmPreprocessSymbols' referenced from
H:\Stampa1\...
Continuo a provare
cmq grazie,
Eugenio. 

 H:\Stampa1\...
Controlla bene in tutti e tre i files che le righe non siano state spezzate. 
Ti faccio presente che ciò che ti ho mandato è perfettamente funzionante (sono 
i files che uso io) e non necessita di alcuna modifica.


EMG

 ha scritto:
Non riesco a linkare,
il linker mi segnala:
 
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Fatal: Unable to open file 'C0X32.OBJ'
Premere un tasto per continuare . . . 
non so cos'e' quel c0x32 in quel punto, subito
dopo il nome del linker dovrebbe esserci il nome delll'obj
IF EXIST %1.obj h:\bcc55\bin\ilink32 c0x32 %1.obj, %1.EXE
@h:\xharbour\xharbour.rsp
ci rinuncio,
Eugenio.
 

 ci rinuncio,
Ti arrendi cosě facilmente? Per quale motivo? Tieni presente che lo stesso 
batch l'ho dato oggi stesso ad un altro programmatore ed ha funzionato 
perfettamente. E la stessa cosa č successa altre volte in passato.


 Eugenio Belli.

Eugenio Belli ha scritto:

Prova a controllare l'utilizzo della cpu durante l'esecuzione del
programma.
Se è sempre attorno al 100 %. il problema sta lì .
Si risolve con la funzione AUTOYELD().
Ciao

 Si risolve con la funzione AUTOYELD().
Che però non trovo nella NG del Clipper 5.3b. Di quale libreria fa parte?


> ci rinuncio,
diciamo che non so che fare...
Eugenio.
 

 diciamo che non so che fare...
Segui alla lettera le istruzioni che ti ho dato e fammi sapere.


Si risolve con la funzione AUTOYELD().
Ho provato anche questa 
ho aggiunto:
OL_autoYield(.t.)
nel sorgente
e ho linkato la lib OSLIB.LIB
non risolve.
Ho provato invece a fare un boot da Ms/dos
con un floppy di boot di win98.
Ho eseguito il programmino di prova con 
inserendo un'altro floppy e ...
Funziona!
La stampa e' venuta fuori subito.
Eugenio.

 La stampa e' venuta fuori subito.
Per questo ti consigliavo di provare con xHarbour che è molto più adatto di 
Clipper ai sistemi NT/2000/XP.


EMG

 ma mi sembra ci sia...
Appunto, lo dovresti togliere. Ma non te lo consiglio. Comunque funziona tale
e quale come in Clipper.


Magari e' la solita cazzata ma non la trovo e sono nei guai.
Rispondo a me stesso ma dovrei rispondere ad Andrea Bruni(p)
che per errore mi ha inviato una e-mail.
Andrea mi ha suggerito di utilizzare C:LPT1. invece che LPT1
come porta stampante ed io sono andato a vedere una parte
di programma che avevo modificato di recente.
La modifica era sbagliata,l'istruzione
SET PRINTER TO LPTx
non sempre veniva eseguita.
Aggiungendola anche nel programmino di esempio
le stampe tornano a funzionare in modo corretto.
Chiedo scusa per il chiasso che ho fatto per quella
che, come spesso succede, era una cazzata.
Eugenio.
 

 le stampe tornano a funzionare in modo corretto.
Vuoi dire che semplicemente scrivendo
SET PRINTER TO C:LPT1
le stampe funzionano correttamente (senza attese) anche in Clipper? Se sě, che 
spiegazione viene data a questo?
In ogni modo, ti consiglio di non abbandonare xHarbour ora che sei riuscito ad 
utilizzarlo. :-)


utilizzarlo. :-)
no, passate le feste, provero' a convertire una delle mie
applicazioni.
Ho visto i sample movie di Visual Harbour ci sto' facendo
un pensierino.
Quello che da molti anni avevo in mente di fare e' un
programma windows che lavori su gli stessi archivi
della versione a carattere dello stesso programma.
Secondo te xHarbour e Visual xHarbour e' possibile?
Ciao,
:-)
Eugenio Belli.

 Secondo te xHarbour e Visual xHarbour e' possibile?
Non ti so dire. Io uso le Fivewin.
