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
	
	