Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17
  1. #11
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    dovrei mettere un semplice controlli IF_THEN_ELSE all'interno del FOR...ma cosa metto come "requisito"?

  2. #12
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    una volta creata la stringa che darà il nome al file, prima di rinominarlo, controlli con il comando Dir, se questo è già esistente.
    Se il file è presente il Dir ti restituisce il nome del file, altrimenti una stringa vuota. Puoi basarti su questo per impostare la condizione If e aggiungere il _1 in coda al nome del file...

    Il discorso, però, è che devi creare un controllo più approfondito, possibilmente con una routine ricorsiva, poichè, se il file con il _1 già esiste otterresti lo stesso un errore.

    Boolean

  3. #13
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    grazie mille, domani provo...

    è un comando con codice simile a questo giusto?

    codice:
    Dim TheFile as String
             Dim Results as String
    
             TheFile = "C:\AUTOEXEC.BAT"
             Results = Dir$(TheFile)
    
             If Results  = "" Then
                MsgBox "File Doesn't Exist!"
             Else
                MsgBox "File does Exist!"
             End If
    qui ovviament restituisce se c'è o non c'è, io l'adatto alla mia funzione e rinomino con _1 o senza...

    per il problema dell'esistenza di un "_1" non dovrebbe esserci...in quanto i files da rinominare saranno univoci...solo in un caso vi possono essere doppioni...quindi ci si limita ad un _1 e basta.

    grazie ancora intanto

  4. #14
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    il codice che hai postato, effettivamente, è in grado di rilevare l'esistenza o meno di un file, quindi puoi tranquillamente adattarlo alle tue esigenze.

    Boolean

  5. #15
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    well, tra poco provo e vediamo che combino. Grazie sai.

  6. #16
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    Tiro su questa discussione...perchè ora, il programma per rinominare i files evolve...
    la prima versione è andata in modo ottimale, ora mi si presenta una problematica per un programma simile...

    devo sempre rinominare in modo banale, dal valore "000010.pdf" al "999990.pdf".

    è banale, seleziono tutti i file della cartella e rinomino, aggiungendo il suffisso "0" come ultimo carattere (che mi indica che il file è il primo e non doppio).

    il problema mi si presenta quando devo saltare un file dalla lista...mi spiego meglio.

    avrò sempre la mia cartella con i files *.pdf scansionati..purtroppo, alcune di queste scansioni saranno "doppie", ossia, il contenuto del file sarà uguale o simile, in due files.
    Ho pensato di risolvere il problema aggiungendo il suffisso "D" in fondo al nome del file.

    pertanto, avrò una lista di files, pre-rinomina files:

    01-0001.pdf
    01-0002.pdf
    ...

    quelli che già so che sono doppi, li rinomino in manuale (tanto sono poche decine su quantità di migliaia).

    ossia, li rinomino con, ad esempio, 00045D.pdf...questo mi dice che il file 45 è doppio...e dovrò avere alla fine nella cartella sia il file 000450.pdf sia il 00045D.pdf.

    Problema : quando faccio il rinominafiles da codice dovrei individuare l'esistenza del file *****D.pdf e saltarlo. Come posso fare?

    attualmente uso questo codice per trovare e rinominare:

    codice:
     Dim NomeOutput As String
    
    Percorso = DirOrigine.Path & "\"
    Percorso2 = DirDestinazione.Path & "\"
    ReDim Preserve ElencoPdf(0)
    
    Estensione = "*.pdf"
    Estensione2 = ".pdf"
    
     'scarica l'elenco dei pdf in ElencoPdf()
     StrApp = Dir(Percorso & Estensione)
     While StrApp <> ""
        ReDim Preserve ElencoPdf(UBound(ElencoPdf) + 1)
        ElencoPdf(UBound(ElencoPdf)) = StrApp
        StrApp = Dir()
     Wend
    
     For ContatorePdf = 1 To UBound(ElencoPdf)
        NomeOutput = Percorso2 & txtInizio.Text & "0" & Estensione2
    
        Name Percorso2 & ElencoPdf(ContatorePdf) As NomeOutput
            
       'Aumentare il contatore
        txtInizio.Text = txtInizio.Text + 1
        AggiornaInizio
        
    Next ContatorePdf
    PS: consigli sono ben visti...anche per la questione del "D"...sicuramente avrò fino a 25000documenti pdf da rinominare in un colpo...quindi al minimo ho bisogno di 5caratteri...

  7. #17
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    Controlla con la InStr la presenza del carattere "D" all'interno della stringa del nome del File.

    Boolean

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.