Buongiorno Lorenzo, ti ringrazio per la tua disponibilità e per le indicazioni date.
Ho guardato il tuo codice, ma sinceramente la scarsa conoscenza che ho del vb non mi ha consentito di capire molto dei passaggi,
io utilizzo più un vba adattato e quindi parte del tuo codice non riesco ad interpretarli.
Ti inserisco il codice che utilizzo per la ricerca di Freq-Rit.Att-Rit.Sto degli ambi, nel mio pc impiega ben 25 sec per visualizzarmi i dati.
Utilizzo un file di testo per l'intero archivio e poi svolgo una ricerca tramite cicli for next, ho visto che più o meno anche tu utilizzi la stessa procedura,
solo che a me impiega tanto tempo senza andare a parlare se si passa a ricerche superiori.
HTML
Private Sub AmbiTutti_Load(sender As Object, e As EventArgs) Handles MyBase.Load
CreaMatrice() 'Matrice archivio
conta = 0
For A1 = 1 To 89
For A2 = A1 + 1 To 90
conta = conta + 1
Ambi(conta, 0) = conta 'Progressivo
Ambi(conta, 1) = A1 '1° numero
Ambi(conta, 2) = A2 '2° numero
Ambi(conta, 3) = 0 'Frequenza
Ambi(conta, 4) = 0 'Rit.Attuale
Ambi(conta, 5) = 0 'Rit.Storico
Ambi(conta, 6) = 0 'Memorizza riga Uscita
Next A2
Next A1
End Sub
Sub CercaAmbi()
Dim I As Long : Dim rusc As Long : Dim rig As Long
Dim ini As Long : Dim fin As Long
Dim caso As Long : Dim nambi As Long
caso = 0 : MaxFre = 0 : MaxRit = 0
ini = 0
fin = NEMax
For nambi = 1 To NrAmbi
For rig = ini To fin
conta = 0
For I = 0 To 4
If dati(rig)(colr + I) = Ambi(nambi, 1) Then
conta = conta + 1
ElseIf dati(rig)(colr + I) = Ambi(nambi, 2) Then
conta = conta + 1
End If
If conta = NumEstr Then Exit For
Next I
'--------------------------------------
If conta = 2 Then
Ambi(nambi, 3) = Ambi(nambi, 3) + 1 'Frequenza
If MaxFre < Ambi(nambi, 3) Then MaxFre = Ambi(nambi, 3)
rusc = rig - Ambi(nambi, 6) 'riga uscita ambo
Ambi(nambi, 6) = rig 'memorizza riga
If rusc > Ambi(nambi, 5) And rig < fin Then Ambi(nambi, 5) = rusc 'Rit.Sto.
Ambi(nambi, 4) = fin - rig 'Ritardo Attuale
If MaxRit < Ambi(nambi, 4) Then MaxRit = Ambi(nambi, 4)
End If
Next rig
Next nambi
End Sub
Se vuoi fare un commento al codice per capire dove sbaglio, ti sono grato.
Francesco