Programma per estrarre foto da una cartella e incollarle in

di il
7 risposte

Programma per estrarre foto da una cartella e incollarle in

Ciao a tutti!
avevo bisogno di un programmino che mi estraesse le foto da una cartella contenente tantissime foto e sulla base di una lista di nomi di file contenuta in un file txt, ne potessi copiare un numero limitato in un'altra cartella.

schematizzando
cartella 1: cartella contenente tutte le foto
file in txt: elenco di foto da estrarre da cartella 1 e copiare in cartella 2
cartella 2: cartella di destinazione contenente le foto filtrate.

Per far ciò ho trovato su internet questa istruzione che ho salvato in un file txt
Const ForReading = 1
Const OverwriteExisting = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("E:\Users\sscordo\Desktop\tool\sandro\Tmp\lista.txt", ForReading)
Do Until objTextFile.AtEndOfStream
strNextLine = objTextFile.Readline
arrServiceList = Split(strNextLine , ",")
Set objFSO = CreateObject("Scripting.FileSystemObject")
For i = 0 to Ubound(arrServiceList)
objFSO.CopyFile "E:\Users\sscordo\Desktop\test\" & arrServiceList(i) , "E:\Users\sscordo\Desktop\tool\output\", OverwriteExisting
Next
Loop
dove: E:\Users\sscordo\Desktop\tool\sandro\Tmp\lista.txt è il file txt contenete una lista di foto tipo:

1.jpg
2.jpg
3.jpg

Il problema è che posso estrarre un massimo di 82 foto. Come mai?
Grazie mille!
Sandro

7 Risposte

  • Re: Programma per estrarre foto da una cartella e incollarle in

    Ciao per la prossima volta:
    1. inserisci una sola volta il post
    2. inserisci il codice tramite tag code
    3. inserisci la discussione nella sezione giusta

    venendo al tuo problema, nel codice non sono specificati limiti all'iterazione quindi il problema non è direttamente nello script.
    Il file che usi come matrice, hai controllato che non abbia spazi e ritorni a capo diversi dalla norma intorno alla riga 82?

    Inoltre l'interruzione potrebbe essere causata da un'eccezzione, hai provato col debug?
  • Re: Programma per estrarre foto da una cartella e incollarle in

    Grazie mille.. non sono affatto un programmatore... potresti spiegarmi le cose dalla base? :S (scusami..)

    - il file come matrice è il foglio txt, giusto? no, non ho alcuna interruzione
    - come faccio a fargli impostare un controllo di debug?

    Grazie di cuore.
  • Re: Programma per estrarre foto da una cartella e incollarle in

    Ho fatto i seguenti test:

    test 1: file txt con 81 righe-----> tutte le foto importate
    test 2: file txt con 82 righe-----> tutte le foto importate
    test 3: file txt con 83 righe-----> SOLO 82 foto importate
    test 4: file txt con 84 righe-----> SOLO 82 foto importate
  • Re: Programma per estrarre foto da una cartella e incollarle in

    Prova a mettere come prima riga del codice (prima di Const ForReading...)
    l'istruzione:
    
    On Error Resume Next
    
    e fammi sapere se cambia qualcosa
  • Re: Programma per estrarre foto da una cartella e incollarle in

    Aggiungo che l'oggetto [objFSO] non serve istanziarlo 2 volte... ne basta 1 all'inizio copme già fatto...
  • Re: Programma per estrarre foto da una cartella e incollarle in

    ... secondo l'istruzione suggerita: "On Error Resume Next" dovrei saltare eventuali errori... e quindi saltare eventuali foto (che penso) siano mancanti.
    Secondo voi c'è il modo per fargli fare un report in txt dove mi dice quali foto ha saltato? .. così faccio il riscontro fisico..
  • Re: Programma per estrarre foto da una cartella e incollarle in

    Ciao l'istruzione suggerita era per iniziare a scremare e capire se il tuo programma andava in eccezione o meno.
    Se il problema è dovuto alla mancanza fisica del file (disalllineamento della matrice presente nel documento txt) puoi gestila con un banale controllo.
    Se il file da spostare esiste fai la copia, altrimenti inserisci il nome del file nel log dei non esistenti

    Alla luce di ciò:
    
    For i = 0 to Ubound(arrServiceList)
    if objFSO.FileExist("E:\Users\sscordo\Desktop\test\" & arrServiceList(i)) then
           objFSO.CopyFile "E:\Users\sscordo\Desktop\test\" & arrServiceList(i) , "E:\Users\sscordo\Desktop\tool\output\", OverwriteExisting
    else
    'qui implementi il codice per inserire in append al file del log dei non trovati 
    end if
    
    Next
    
Devi accedere o registrarti per scrivere nel forum
7 risposte