+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Problema con funzione Shell

  1. #1
    Jocman non è in linea Scolaretto
    Post
    338

    Problema con funzione Shell

    Ciao a tutti.
    Dovrei convertire alcuni pdf in file txt, per poi estrarne alcuni dati.
    In rete ho trovato il programmino "pdftotext" che funziona da riga di comando.
    La sintassi di cui necessito per utilizzarlo è
    pdftotext.exe -raw origine.pdf destinazione.txt

    Se posiziono eseguibile e pdf nella stessa cartella e provo a convertirlo, funziona.

    Allora ho provato a fare la conversione da access, utilizzando questo codice di prova:

    codice:
    Dim Eseguibile As String
    Dim Originale As String
    Dim Destinazione As String
    
    Eseguibile = "C:\Desktop\TEST_IMPORTAZIONE\PDF2TXT\pdftotext.exe"
    
    'RECUPERO IL FILE PDF DA CONVERTIRE
    'Chiedo il percorso del file
    Const msoFileDialogFilePicker = 3
    Dim fsFile As Object
    Set fsFile = Application.FileDialog(msoFileDialogFilePicker)
    
    With fsFile
        .AllowMultiSelect = False
        .Title = "Selezionare i PDF di origine"
        .Filters.Clear
        .Filters.Add "PortableDocumentFormat", "*.pdf"
    
        .InitialFileName = (CurrentProject.Path)
        If .Show = True Then
            Originale = .SelectedItems(1)
        End If
    End With
    
    
    'INDICO LA CARTELLA DI DESTINAZIONE
    Const msoFileDialogFolderPicker = 4
    Dim fsFolder As Object
    Set fsFolder = Application.FileDialog(msoFileDialogFolderPicker)
    
    With fsFolder
        .Title = "Selezionare la cartella di destinazione"
        '.InitialFileName = (CurrentProject.Path)
        If .Show = True Then
            Destinazione = .SelectedItems(1)
        End If
    End With
    
    Debug.Print Originale
    Debug.Print Destinazione
    Debug.Print """" & Eseguibile & " -raw " & Originale & " " & Destinazione & "\FileDiProva.txt" & """"
    
    Call Shell("""" & Eseguibile & """ -raw """ & Originale & " " & Destinazione & "\FileDiProva.txt")
    Sul forum avevo letto (suggerimento di Alex) di utilizzare i doppi apici nella gestione dei parametri della riga di comando (inizialmente avevo provato a inserire il parametro -raw nella stringa Eseguibile)

    Quando lancio il tutto, vedo aprirsi per un istante (troppo veloce per vedere cosa dica) la finestra del prompt, ma nella cartella di destinazione non trovo nulla.

    L'ultimo Debug.Print mi visualizza la seguente riga:

    codice:
    C:\Desktop\TEST_IMPORTAZIONE\PDF2TXT\pdftotext.exe -raw C:\Desktop\TEST_IMPORTAZIONE\00PROVA\prova.pdf C:\Desktop\TEST_IMPORTAZIONE\00DESTINAZIONE\FileDiProva.txt
    Se prendo questa riga e la incollo nella finestra del prompt (sia prima tornando col prompt sulla root tramite CD\ sia rimanendo con il prompt di apertura) l'operazione va a buon fine.

    Ne deduco quindi che la riga di comando sia costruita bene.

    Ma sotto Access non ne vuole sapere.

    Cosa sbaglio?

    Grazie

    Andrea

  2. #2
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,804
    Blogs
    5
    codice:
    Call Shell("""" & Eseguibile & """" & " -raw " & """" & Originale & """" & " " & """" & Destinazione & "\FileDiProva.txt" & """")
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  3. #3
    Jocman non è in linea Scolaretto
    Post
    338
    Grazie Antonio, funziona....
    Purtroppo con tutti gli apici da gestire spesso e volentieri non capisco più nulla....

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi