Salve a tutti ho un problema con i tempi di risposta del computer, mi spiego meglio ho creato questo codice
'inzio a calcolare il tempo ed apro la clessidra
Inizio = Now()
DoCmd.Hourglass True
'seleziono i pdf temporanei
Dim StrFile As String
StrFile = Dir(CurrentProject.Path & "\pdfVecchio\*.pdf")
'inizio il ciclo
Do While Len(StrFile) > 0
'creo il txt temp
Dim File As String
File = CurrentProject.Path & "\pdfVecchio\" & StrFile
creoTemp = CurrentProject.Path & "\pdftotext.exe " & Chr(34) & File & Chr(34) & " " & CurrentProject.Path & "\Temp.txt"
Shell creoTemp, vbHide
'attendo 0.6 sec che si crei il file temp
Dim PauseTime As Variant, Start As Variant, Elapsed As Variant
PauseTime = 0.6 'secondi pausa
Start = Timer
Elapsed = 0
Do While Timer < Start + PauseTime
Elapsed = Elapsed + 1
If Timer = 0 Then
PauseTime = PauseTime - Elapsed
Start = 0
Elapsed = 0
End If
DoEvents
Loop
'apro il file temp
Open CurrentProject.Path & "\Temp.txt" For Input As #1
'attendo 0.2 sec che si apra il file temp
Dim PauseTime3 As Variant, Start3 As Variant, Elapsed3 As Variant
PauseTime3 = 0.2 'secondi pausa
Start3 = Timer
Elapsed3 = 0
Do While Timer < Start3 + PauseTime3
Elapsed3 = Elapsed3 + 1
If Timer = 0 Then
PauseTime3 = PauseTime3 - Elapsed3
Start3 = 0
Elapsed3 = 0
End If
DoEvents
Loop
'Leggo il file temp e seleziono l'anno il titolo ed il codice fiscale
Line Input #1, riga1
anno = Mid(riga1, 21, 4)
Line Input #1, riga2
Line Input #1, riga3
titolo = Mid(riga3, 4, 3)
Line Input #1, riga4
Line Input #1, riga5
Line Input #1, riga6
Line Input #1, riga7
Line Input #1, riga8
Line Input #1, riga9
Line Input #1, riga10
Line Input #1, riga11
Line Input #1, riga12
Line Input #1, riga13
Line Input #1, riga14
Line Input #1, riga15
Line Input #1, riga16
Line Input #1, riga17
Line Input #1, riga18
Line Input #1, riga19
Line Input #1, riga20
Line Input #1, riga21
Line Input #1, riga22
Line Input #1, riga23
Line Input #1, riga24
Line Input #1, riga25
Line Input #1, riga26
cf = riga26
Close #1
'rinomino file pdf in base al titolo codice fiscale ed anno
Dim nomevecchio
Dim nomenuovo As String
nomevecchio = File
nomenuovo = sFolder & "\CUD" & titolo & cf & anno & "0000000000000000.pdf"
'elimino il vecchio pdf e creo il nuovo pdf rinominato
Name nomevecchio As nomenuovo
'elimino txt temporaneo
Kill CurrentProject.Path & "\Temp.txt"
StrFile = Dir
'vado al prossimo pdf se questo non è l'ultimo
Loop
'altrimenti chiudo il ciclo
End If
End With
'chiudo la clessidra
DoCmd.Hourglass False
'calcolo il tempo impiegato
Fine = Now()
totale = DateDiff("s", Inizio, Fine)
'mando il messaggio di fine app con il tempo impiegato
MsgBox ("PDF Rinominati Tempo impiegato " & totale & " sec."), vbInformation
in patrica prende tutti i pdf presenti in una determinata cartella
tramite il programma pdftotext.exe crea un txt con i dati presenti nel pdf
legge i dati nelle linee 1, 3 e 26 e rinomina i pdf con i dati che ha rilevato
il mio problema sta nel fatto che al momento di aprire il txt
Open CurrentProject.Path & "\Temp.txt" For Input As #1
dopo circa 10 pdf si blocca perchè non lo trova, e lo stesso errore me lo dà quando inizia a leggere il txt
Line Input #1, riga1
quindi ho risolto mettendo un timer di circa 0.6 sec all' apertura del txt e di 0.2 sec alla lettura del txt
oltre al fatto che non mi piace dal punto di vista concettuale il problema è che se il computer fa altre operazioni si sballa lo stesso
quindi ho pensato di aggiungere un codice per fare andare avanti solo se il file txt esiste quindi ho scritto
Line1:
ctrltemp = len(dir(currentProject.path & "\Temp.txt"))
If ctrltemp >0 Then
Open CurrentProject.Path & "\Temp.txt" For Input As #1
else
GoTo Line1
end if
ma così mi elebora solo un pdf e poi finisce
ho notato che il problema stà nel crtltemp
infatti se scrivo
ctrltemp = len(dir(currentProject.path & "\Temp.txt"))
deubug.Print ctrltemp
mi fà sempre solo un pdf e finisce
come posso risolvere il problema?