Scusate per prima :d non sapevo
In breve questo mi serve per creare giornate del calendario di serie A senza ripetizioni ovviamente
Ecco quello che ho scritto io :
codice:
On Error GoTo GestioneErrori
Dim incontri(1 To 20) As String
Dim archivio, archivio2, ritorno1 As String
Dim o, k, y As Byte
Randomize
o = 0
y = 1
k = Int(Rnd * 19 + 1)
r = Int(Rnd * 19 + 1)
incontri(1) = "JUVENTUS": incontri(2) = "INTER"
incontri(3) = "LECCE": incontri(4) = "CATANIA"
incontri(5) = "MILAN": incontri(6) = "UDINESE"
incontri(7) = "LAZIO": incontri(8) = "REGGINA"
incontri(9) = "ROMA": incontri(10) = "PALERMO"
incontri(11) = "CHIEVO": incontri(12) = "NAPOLI"
incontri(13) = "ATALANTA": incontri(14) = "CAGLIARI"
incontri(15) = "TORINO": incontri(16) = "SIENA"
incontri(17) = "SAMPDORIA": incontri(18) = "BOLOGNA"
incontri(19) = "FIORENTINA": incontri(20) = "GENOA"
Do
For i = 1 To 38
archivio = "C:\Calendario\Serie A\Giornata " & i & "°.fnv"
If FileLen(archivio) = 0 Then
End If
trovato = False
Open archivio For Input As #1
Do
k = Int(Rnd * 19 + 1)
r = Int(Rnd * 19 + 1)
Line Input #1, partite
If k = r Then
k = Int(Rnd * 9 + 1)
r = Int(Rnd * 9 + 1)
End If
If partite = UCase(Trim(incontri(k) & " - " & incontri(r))) Then
k = Int(Rnd * 9 + 1)
r = Int(Rnd * 9 + 1)
trovato = True
i = 1
End If
If partite = UCase(Trim(incontri(r) & " - " & incontri(k))) Then
k = Int(Rnd * 9 + 1)
r = Int(Rnd * 9 + 1)
trovato = True
i = 1
End If
If Left(partite, Len(incontri(k))) = Trim(UCase(incontri(k))) Then
k = Int(Rnd * 9 + 1)
r = Int(Rnd * 9 + 1)
trovato = True
i = 1
End If
If Left(partite, Len(incontri(r))) = Trim(UCase(incontri(r))) Then
k = Int(Rnd * 9 + 1)
r = Int(Rnd * 9 + 1)
trovato = True
i = 1
End If
Loop Until EOF(1)
Close #1
Next i
GestioneErrori:
If Err.Number = 53 Then
Close #1
End If
If trovato = False Then
o = o + 1
archivio2 = "C:\Calendario\Serie A\Giornata " & y & "°.fnv"
ritorno1 = "C:\Calendario\Serie A\Giornata " & y + 19 & "°.fnv"
Open archivio2 For Append As #1
Print #1, incontri(k) & " - " & incontri(r)
Close #1
Open ritorno1 For Append As #1
Print #1, incontri(r) & " - " & incontri(k)
Close #1
If o >= 10 Then y = y + 1: o = 0
End If
Loop Until y > 19
questo codice pero mi da ancora ripetizioni negli archivi creati con le partite.
aiuto
grazie