Option Explicit
Sub Main
'''''''''SERVE PRINCIPALMENTE per leggere filtro colonnare -sUPERENALOTTO
'''''ma può leggere anche matrici fino alla decina o piu numeri
'''''--------------------------------------------------------
Dim sFileBd,Srecord,last,x,qt,t,cg,numeretto,hH,h,ts,tT,ct,K,z,NPda,NPa,NSda,NSa,tsu
Dim file,record,lastult,selsom,tsd,tsp,Classe,riga,lb,min,max,mind,maxd,minp,maxp,minu,maxu
''''file output dopo
Scrivi "Script Adispo-1",1
sFileBd = "C:\temp\Matrice.txt"
Call LeggiRigheFileDiTesto(sFileBd,Srecord)
last = UBound(Srecord)
ColoreTesto(2)
Scrivi "Leggo combinazioni matrice ...." & last + 1,1
'''''''''''''''''''''''''''''''''''''''''
Classe = CInt(InputBox("Classe Matrice da 6 fino a 10 nr. ",,6))
selsom = InputBox("Filtra Somma D=dispari o P=pari o U=Unificati(DP) o T=totale",,"T")
If selsom = "D" Or selsom = "U" Then
NPda = CInt(InputBox("Somma n.Primi da..01:25... ",,01))
NPa = CInt(InputBox("Somma n.Primi a..01:25... ",,25))
End If
If selsom = "P" Or selsom = "U" Then
NSda = CInt(InputBox("Somma n.Secondi da..13:42... ",,13))
NSa = CInt(InputBox("Somma n.Secondi a..13:42... ",,42))
End If
'''''''''''''''''''''''''''''''''''''''''
Scrivi "Matrice - " & sFileBd,1
Scrivi "Matrice - classe " & Classe,1
Scrivi "Totale Combinazioni " & last + 1,1
Scrivi "Filtra Somma Numeretti Primi D=Dispari o P=Pari o U=Unificati(PD) O T=Totale SCELTO O RICHIESTO..( " & selsom & " )",1
ColoreTesto(1)
If selsom = "D" Or selsom = "d" Or selsom = "U" Then Scrivi "N.Primi Presenze da....( " & NPda & " ) a....( " & NPa & " )",1
If selsom = "P" Or selsom = "p" Or selsom = "U" Then Scrivi "N.Secondi Presenze da....( " & NSda & " ) a....( " & NSa & " )",1
ColoreTesto(0)
Scrivi "La Matrice arriva fino a ventine , i numeri devono essere divisi con 1 spaziovuoto e terminare senza spazi vuoti o punti",1
Scrivi "La Matrice l'ultima riga del file non deve avere righe bianche o senza dati ",1
Scrivi "La Matrice deve terminare con ultima riga valida",1
Scrivi
ColoreTesto(0)
'''loop per leggere file e calcolare combinazioni come da parametri filtro impostati
min = 999 : max = 0:mind = 999:maxd = 0:minp = 999:maxp = 0:minu = 999:maxu = 0:tsu = 0
For x = 0 To last
Messaggio(x & "../.. " & last + 1)
'arrays decodifica
ReDim av(50)
riga = ""
lb =(Classe*2) +(Classe - 1)
riga = Left(Srecord(x),lb)
Call SplitByChar(riga," ",av)
qt = UBound(av)
ReDim NR(50)
'''compondo arrays per numeretti
hH = 0:ts = 0:tsp = 0:tsd = 0
For h = 0 To qt
hH = hH + 1
NR(hH) = Left(Format2(av(h)),1)
hH = hH + 1
NR(hH) = Right(Format2(av(h)),1)
'''' TOTALE
If selsom = "T" Or selsom = "t" Then
ts = ts + Int(av(h))
End If
Next
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''pari o dispari
If selsom = "D" Or selsom = "d" Or selsom = "T" Then
For K = 0 To qt*2 + 2
If dispari(K) = True Then
tsd = tsd + Int(NR(K))
End If
Next
If tsd > maxd Then maxd = tsd
If tsd < mind Then mind = tsd
End If
If selsom = "P" Or selsom = "p" Or selsom = "T" Then
For K = 0 To qt*2 + 2
If pari(K) = True Then
tsp = tsp + Int(NR(K))
End If
Next
If tsp > maxp Then maxp = tsp
If tsp < minp Then minp = tsp
End If
''''''CALCOLA SOMMA DISPARI O PARI O TOTALE
'''''
If selsom = "d" Or selsom = "D" Then
If tsd >= NPda And tsd <= NPa Then
ct = ct + 1
Scrivi riga
End If
cg = cg + 1
End If
If selsom = "P" Or selsom = "p" Then
If tsp >= NSda And tsp <= NSa Then
ct = ct + 1
Scrivi riga
End If
cg = cg + 1
End If
''''Unificati'''''''''''''''''''''''''''''''''''''''''''''''''
''''pari o dispari
If selsom = "U" Or selsom = "u" Then
tsu = 0
For K = 0 To qt*2 + 2
If dispari(K) = True Then
tsu = tsu + Int(NR(K))
End If
Next
End If
If selsom = "U" Or selsom = "U" Then
For K = 0 To qt*2 + 2
If pari(K) = True Then
tsu = tsu + Int(NR(K))
End If
Next
End If
''''''CALCOLA SOMMA DISPARI O PARI O TOTALE
'''''
If selsom = "U" Or selsom = "U" Then
If tsu >= NPda And tsu <= NPa Then
ct = ct + 1
Scrivi riga
If tsu > maxu Then maxu = tsu
If tsu < minu Then minu = tsu
cg = cg + 1
End If
End If
''''''''
If selsom = "T" Or selsom = "t" Then
If ts > max Then max = ts
If ts < min Then min = ts
Scrivi " Somma Tot." & FormattaStringa(ts,"0000") & " Somma PosD." & Format2(tsd) & " Somma PosP." & Format2(tsp) & " " & riga
ct = ct + 1
cg = cg + 1
End If
Next
Scrivi
Scrivi "Totale combinazioni elab." & x,1
Scrivi
Scrivi "Riepilogo combinazioni filtrate.." & ct,1
Scrivi
ColoreTesto(1)
Scrivi "Tipo Somme con relativo Min e Max",1
Scrivi "T=somma TOTALE Min." & FormattaStringa(min,"000") & " Max." & FormattaStringa(max,"000"),1
Scrivi "D=Somma nPrimi Min." & FormattaStringa(mind,"000") & " Max." & FormattaStringa(maxd,"000"),1
Scrivi "P=Somma nSecondi Min." & FormattaStringa(minp,"000") & " Max." & FormattaStringa(maxp,"000"),1
Scrivi "U=Somma Unificati DP Min." & FormattaStringa(minu,"000") & " Max." & FormattaStringa(maxu,"000"),1
Scrivi
ColoreTesto(0)
Scrivi "Tempo Elab." & TempoTrascorso
End Sub