Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    conoscere quando...

    ... una stampa su file è terminata.
    In effetti attravverso una applicazione CICS invio su file un tabulato in formato .txt e il mio problema è sapere quando la stampa di questo job è terminata? o meglio quando il file è libero per l'editing, visto che finchè non finisce il job e tento di aprire questo file il sistema mi riponde "Attenzione il file e in uso da un'altra applicazione"

  2. #2
    Utente di HTML.it L'avatar di fabio309
    Registrato dal
    Oct 2002
    Messaggi
    1,918
    ho avuto un problema simile tempo fa e l'ho risolto così: dopo la stampa facevo copiare il file da un comando batch, poi da codice
    codice:
    temp = ""
    do while temp=""
        temp=dir$("percorso\nome_secondo_file)
        sleep 100
    do loop
    in questo modo quando esce dal ciclo sono sicuro che il file è pronto

  3. #3
    [supersaibal]Originariamente inviato da fabio309
    ho avuto un problema simile tempo fa e l'ho risolto così: dopo la stampa facevo copiare il file da un comando batch, poi da codice
    codice:
    temp = ""
    do while temp=""
        temp=dir$("percorso\nome_secondo_file)
        sleep 100
    do loop
    in questo modo quando esce dal ciclo sono sicuro che il file è pronto [/supersaibal]
    Grazie per l'aiuto. Ma sono poco pratico con VBA... se per esempio il mio file si chiama PIPPO.txt e lo devo salvare dopo il termine della stampa in c:\cartella1\pippo.txt

    mi puoi fare un esempio...

  4. #4
    Utente di HTML.it L'avatar di fabio309
    Registrato dal
    Oct 2002
    Messaggi
    1,918
    Premetto che non sono un programmatore, quindi la soluzione che ti propongo non è sicuramente la migliore...prova a fare una cosa del genere:
    codice:
    Open "C:\Comando.bat" For Output As #1
    Print #1, "cd\"
    Print #1, "copy c:\pippo.txt c:\cartella1\pippo.txt"
    Close #1
    X = Shell("C:\Comando.bat", 1)
    temp = ""
    Do While temp = ""
         sleep 100
         temp = Dir("c:\cartella1\pippo.txt")
    Loop

  5. #5
    [supersaibal]Originariamente inviato da fabio309
    Premetto che non sono un programmatore, quindi la soluzione che ti propongo non è sicuramente la migliore...prova a fare una cosa del genere:
    codice:
    Open "C:\Comando.bat" For Output As #1
    Print #1, "cd\"
    Print #1, "copy c:\pippo.txt c:\cartella1\pippo.txt"
    Close #1
    X = Shell("C:\Comando.bat", 1)
    temp = ""
    Do While temp = ""
         sleep 100
         temp = Dir("c:\cartella1\pippo.txt")
    Loop
    [/supersaibal]
    .. ma quando devo far partire il file di batch?

  6. #6
    Utente di HTML.it L'avatar di fabio309
    Registrato dal
    Oct 2002
    Messaggi
    1,918
    subito dopo la stampa

  7. #7
    [supersaibal]Originariamente inviato da fabio309
    subito dopo la stampa [/supersaibal]
    se ho ben capito subito dopo il comando che invia il job, per esempio quando premo su "STAMPA" oppure "OK"?

  8. #8
    Utente di HTML.it L'avatar di fabio309
    Registrato dal
    Oct 2002
    Messaggi
    1,918
    Si esatto; dopo aver inviato il comando di stampa
    In teoria puoi anche prevedere un tempo di attesa tipo "SLEEP 100" e dopo controllare la fine della stampa con il file batch

  9. #9
    [supersaibal]Originariamente inviato da fabio309
    Si esatto; dopo aver inviato il comando di stampa
    In teoria puoi anche prevedere un tempo di attesa tipo "SLEEP 100" e dopo controllare la fine della stampa con il file batch [/supersaibal]
    ... ti prego aiutami ancora, queste sono le linee del mio codice che invia il comando di stampa:

    Sess0.SCREEN.PUTSTRING "9999", 10, 42
    Sess0.SCREEN.PUTSTRING " ", 11, 42
    Sess0.SCREEN.PUTSTRING codprint, 15, 42

    dopo questa riga parte la stampa
    Sess0.SCREEN.SendKeys ("<Enter>" + "<Enter>")

    Sess0.SCREEN.waitforstring "TRASMESSA", 1, 28, 9
    Sess0.SCREEN.SendKeys ("<PF3>")

    mi potresti portare passo passo alla conclusione del mio problema.

    non ho ancora capito cosa devo inserire nel file di batch e dove depositartlo?

  10. #10
    Utente di HTML.it L'avatar di fabio309
    Registrato dal
    Oct 2002
    Messaggi
    1,918
    Scusa il ritardo nella risposta, dopo il tuo codice che avvia la stampa prova a mettere

    codice:
    Open "C:\Comando.bat" For Output As #1
    Print #1, "cd\"
    Print #1, "copy c:\pippo.txt c:\cartella1\pippo.txt"
    Close #1
    X = Shell("C:\Comando.bat", 1)
    temp = ""
    Do While temp = ""
         sleep 100
         temp = Dir("c:\cartella1\pippo.txt")
    Loop

    oppure
    codice:
    on error resume next
    open "nome file" for input as #1
    Do While Err.Number > 0
        sleep 100
        Err.number = 0
        open "nome file" for input as #1
    Loop
    On error goto 0

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.