Alka, optime datemi una mano almeno a capire come muovermi...
Dunque, fin prima io agivo su un file html che aveva il seguente formato:
codice:
<th><div class="numeroEstrazione">001 - 22/07</div></th>
<td><div class="numeroEstratto">2</div></td>
<td><div class="numeroEstratto">7</div></td>
<td><div class="numeroEstratto">10</div></td>
<td><div class="numeroEstratto">11</div></td>
<td><div class="numeroEstratto">21</div></td>
<td><div class="numeroEstratto">23</div></td>
<td><div class="numeroEstratto">24</div></td>
<td><div class="numeroEstratto">25</div></td>
<td><div class="numeroEstratto">28</div></td>
<td><div class="numeroEstratto">43</div></td>
<td><div class="numeroEstratto">47</div></td>
<td><div class="numeroEstratto">49</div></td>
<td><div class="numeroEstratto">53</div></td>
<td><div class="numeroEstratto">59</div></td>
<td><div class="numeroEstratto">61</div></td>
<td><div class="numeroEstratto">65</div></td>
<td><div class="numeroEstratto">72</div></td>
<td><div class="numeroEstratto">77</div></td>
<td><div class="numeroEstratto">81</div></td>
<td><div class="numeroEstratto">89</div></td>
<td><div class="numeroSpeciale">72</div></td>
Qui con VB6 col seguente codice facevo il parsing:
codice:
Private Sub LeggiFileHtmlTornaEstrazioni(sFile As String, aRetEstr() As STRUCT_ESTRAZIONE_10LOTTO, nAnno As Integer)
Dim nRiga As Long 'faccio il cicla sulle righe lette
Dim nTrovate As Long ' faccio il conteggio di tutte le estrazioni trovate
Dim nNumTrovati As Integer ' faccio il conteggio di tutti i num trovati
ReDim aRetEstr(0) As STRUCT_ESTRAZIONE_10LOTTO
ReDim aRighe(0) As String ' ora con questa funzione preparo l'array che conterà tutte le righe del file
Call LeggiFileTornaRighe(sFile, aRighe) ' richiamo la funzione che effettua la lettura del file
For nRiga = 0 To UBound(aRighe)
If InStr(aRighe(nRiga), "numeroEstrazione") Then 'contiene la data, ed è quella che dice che abbiamo trovato una nuova estrazione
nTrovate = nTrovate + 1 ' adesso faccio l'incremento delle estrazioni che ho trovato
ReDim Preserve aRetEstr(nTrovate) As STRUCT_ESTRAZIONE_10LOTTO ' ora ridimensiono l'array preservando i valori precedenti
Call LeggiDataEId(aRetEstr(nTrovate), aRighe(nRiga), nAnno) ' richiamo alla funzione di "supporto" denominata "LeggiDataEId"
nNumTrovati = 0
End If
If InStr(aRighe(nRiga), "numeroEstratto") Then ' è la riga che contiene uno dei numeri estratti
nNumTrovati = nNumTrovati + 1 'variabile per conteggiare le righe lette
Call LeggiNumeroEstratto(aRetEstr(nTrovate), aRighe(nRiga), nNumTrovati) ' richiamo alla funzione di "supporto" denominata "LeggiNumeroEstratto"
End If
If InStr(aRighe(nRiga), "numeroSpeciale") Then ' è la riga che contiene il numero oro estratto
Call LeggiNumeroOro(aRetEstr(nTrovate), aRighe(nRiga)) ' richiamo alla funzione di "supporto" denominata "LeggiNumeroOro" per valorizzarlo
End If
Next
DoEvents
'Kill sFile
End Sub
'Con la procedura "LeggiDataEId" passo l'elemento dell'array e la stringa letta con i valori data e N° Estr e mi valorizza i membri dell' array che contiene l'estrazione da valorizzare
Private Function LeggiDataEId(structEstr As STRUCT_ESTRAZIONE_10LOTTO, sRiga As String, nAnno As Integer)
Dim i As Integer
Dim sTemp As String
ReDim av(0) As String
'sRiga = Replace(sRiga, "<br>", "-")
av() = Split(sRiga, "<")
i = InStr(av(1), ">")
sTemp = Left(av(1), i - 1)
ReDim av(0) As String
av() = Split(sTemp, "-")
structEstr.strctData.nNumEstrazione = Val(av(0))
ReDim avv(0) As String
avv() = Split(av(1), "/")
structEstr.strctData.AA = nAnno
structEstr.strctData.Mm = Val(Trim$(avv(1)))
structEstr.strctData.GG = Val(Trim$(avv(0)))
' Debug.Print Val(av(0))
' Debug.Print nAnno
' Debug.Print Val(Trim$(avv(1)))
' Debug.Print Val(Trim$(avv(0)))
End Function
' Con la procedura "LeggiNumeroEstratto" passo l'elemento dell'array aRetEstr che ha bisogno anch'esso di essere valorizzato
Private Sub LeggiNumeroEstratto(structEstr As STRUCT_ESTRAZIONE_10LOTTO, sRiga As String, nIdNumeroDaValorizzare As Integer)
Dim i As Integer
Dim sTemp As String
ReDim av(0) As String
av() = Split(sRiga, ">")
i = InStr(av(1), "<")
sTemp = Left(av(1), i - 1)
structEstr.aNum(nIdNumeroDaValorizzare) = Val(sTemp)
End Sub
' Con la procedura "LeggiNumeroOro" passo l'elemento dell'array aRetEstr che ha bisogno anch'esso di essere valorizzato
Private Sub LeggiNumeroOro(structEstr As STRUCT_ESTRAZIONE_10LOTTO, sRiga As String)
Dim o As Integer
Dim sTemp1 As String
ReDim av(0) As String
av() = Split(sRiga, ">")
o = InStr(av(4), "<")
sTemp1 = Left(av(4), o - 1)
structEstr.nNumOro = Val(sTemp1) 'Val(sTemp1) contiene i numeri oro trovati
End Sub
Ma ora con il file json da voi indicato come posso muovermi per il parsing in modo da avere sempre le mie variabili alimentate?
E' possibile per voi darmi delle "dritte" ?
Vi ringrazio