L
LuigiB
Guest
Ciao piu o meno avevi fatto bene solo che le date non si possono
confrontare come stringhe .. l'ordinamento delle stringhe ovviamente
aviene in ordine alfabetico percio ad esempo se confrontassi
come stringa le due date 20/01/2011 e 10/12/2011 verrebbe
che il dieci dicembre capita prima del 20 gennaio ...
le date si possono confrontare come stringa solo al contrario
e con tutti i campi formattati per coprire sempre 8 caratteri (escluse le barre senno 10)
2011/01/20 viene prima di 2011/12/10 percio o crei la stringa con la data in formato aaaammgg oppure confronti separatamente i campi
sempre partendo dall'anno poi il mese poi il giorno.
Poi c'era anche qualche altro piccolo problema nel codice.
la routine corretta provata sulla prima versione che mi hai mandato
e con la modifica che gia hai fatto sul parametro di salvaestrione che da array diventa una semplice variabile è questa
ciao !
confrontare come stringhe .. l'ordinamento delle stringhe ovviamente
aviene in ordine alfabetico percio ad esempo se confrontassi
come stringa le due date 20/01/2011 e 10/12/2011 verrebbe
che il dieci dicembre capita prima del 20 gennaio ...
le date si possono confrontare come stringa solo al contrario
e con tutti i campi formattati per coprire sempre 8 caratteri (escluse le barre senno 10)
2011/01/20 viene prima di 2011/12/10 percio o crei la stringa con la data in formato aaaammgg oppure confronti separatamente i campi
sempre partendo dall'anno poi il mese poi il giorno.
Poi c'era anche qualche altro piccolo problema nel codice.
la routine corretta provata sulla prima versione che mi hai mandato
e con la modifica che gia hai fatto sul parametro di salvaestrione che da array diventa una semplice variabile è questa
ciao !
Codice:
Sub AggiornaEstrazioni(bAncheDaTelevideo As Boolean)
Dim sRetErr As String
Dim sNomeFileLocal As String
Dim sDirOutput As String
Dim sRetFileTxt As String
Dim QMax As Long
Dim UltimaDataInArchivio As STRUCT_ESTRAZIONE
Dim k As Long
Dim f As Integer
ReDim strctE(0) As STRUCT_ESTRAZIONE
'aggiorna le impostazioni di configurazione
Call LeggiImpostazioni
'costruisce il path locale per scaricare il file
sNomeFileLocal = Trim(strctini.sPathDiLavoro) & "Estrazioni.zip"
'costruisce la directory dove scompattare il file zip
sDirOutput = Trim(strctini.sPathDiLavoro) & AddSlash("Temp")
QMax = GetQuantitaEstrInArchivio
If QMax > 0 Then
' Call ApriBaseDatiInMemoria(1, QMax, strctE)
'f = ApriBaseDati
Call LeggiEstrazione(QMax, UltimaDataInArchivio)
'Call ChiudiBaseDati(f)
End If
If CreaPath(sDirOutput) Then
' cancella il contenuto della dir temporanea
Call KillFile(sDirOutput & "\*")
' cancella il file local per fare posto a quello da scaricare
If KillFile(sNomeFileLocal) Then
' scarica file dal web
If DownloadFile(Trim(strctini.sUrlEstrazioni), sNomeFileLocal, sRetErr) Then
Call cancellaDirTempzip
'unzippa il file
Call Unzip(sNomeFileLocal, sDirOutput, sRetFileTxt)
If InStr(sRetFileTxt, ".") Then
If FileExist(sRetFileTxt) Then
ReDim aRetEstr(0) As STRUCT_ESTRAZIONE
Call AggiornaBaseDati(sRetFileTxt, aRetEstr, bAncheDaTelevideo)
FrmLog.AddLine ("Aggiorno base dati ...")
' f = ApriBaseDati
For k = LBound(aRetEstr) To UBound(aRetEstr)
If aRetEstr(k).DataEstr.aa > UltimaDataInArchivio.DataEstr.aa Then
If aRetEstr(k).DataEstr.mm > UltimaDataInArchivio.DataEstr.mm Then
If aRetEstr(k).DataEstr.gg > UltimaDataInArchivio.DataEstr.gg Then
Call SalvaEstrazione(aRetEstr(k))
End If
End If
End If
Next
FrmLog.AddLine ("Fatto !")
' Call ChiudiBaseDati(f)
End If
Else
FrmLog.AddLine ("ERRORE ! File Zip estrazioni non valido")
End If
Else
MsgBox sRetErr, vbExclamation
End If
Else
MsgBox "Impossibile cancellare il vecchio file scaricato in precedenza ,verificare che non sia in uso." & vbCrLf & sNomeFileLocal, vbCritical
End If
Else
MsgBox "Impossibile cre