Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature may not be available in some browsers.
hai provato a cercare un convertitore da JSON a CSV o da XML a CSV? Potrebbe funzionare.toldone99 ha scritto:per mac niente?
Sub JSON_Extractor(ContenutoFileEvento As String, canale As String, posizione As String, nome As String, genere As String, Data As String)
Prima = InStr(ContenutoFileEvento, "[") + 1
Ultima = InStrRev(ContenutoFileEvento, "]") - 1
ContenutoFileEvento = Mid$(ContenutoFileEvento, Prima, Ultima - Prima) ' Contenuto completo file evento.
ContenutoFileEvento = Replace(ContenutoFileEvento, "\'", "*") ' L'apostrofo è un delimitatore, se è presente nel testo, confonde il programma.
ContenutoFileEvento = Replace(ContenutoFileEvento, "'", "*") ' L'apostrofo è un delimitatore, se è presente nel testo, confonde il programma.
ContenutoFileEvento = Replace(ContenutoFileEvento, Chr(34), "'") ' Sostituisce virgolette con apostrofo.
ContenutoFileEvento = Replace(ContenutoFileEvento, Chr(13) & Chr(10), "") ' Elimina i ritorni a capo
ContenutoFileEvento = Replace(ContenutoFileEvento, Chr(10), "") ' Elimina i ritorni a capo
While InStr(ContenutoFileEvento, "{") > 0
If abort = True Then
frmSetup.txtStatus.Caption = "INTERROTTO"
Exit Sub
End If
frmSetup.txtStatus.Caption = "Eventi totali: " & NumEventi
DoEvents
frmSetup.txtStatus.Caption = "Canale " & canale & ", evento " & NumEventi
NumEventi = NumEventi + 1
' Raccolta dati su singolo evento in unica variabile:
InizioRiga = InStr(ContenutoFileEvento, "{") + 1
FineRiga = InStr(ContenutoFileEvento, "}") - 1
LunghRiga = FineRiga - InizioRiga + 1
riga = Mid$(ContenutoFileEvento, InizioRiga, LunghRiga)
'riga = Replace(Mid$(ContenutoFileEvento, InizioRiga, LunghRiga), Chr$(10), "")
'riga = Replace(riga, "\'", "*") ' L'apostrofo è un delimitatore, se è presente nel testo, confonde il programma.
'riga = Replace(riga, "'", "*") ' L'apostrofo è un delimitatore, se è presente nel testo, confonde il programma.
'riga = Replace(riga, Chr(34), "'") ' Sostituisce virgolette con apostrofo.
'Debug.Print riga
' ************* Formato della "riga" (in realta' gruppo di dati con ritorni a capo, poi trasformato in riga): ***********
' 'id':'28324961',
' 'pid':'5365',
' 'starttime':'00:30',
' 'dur':'55',
' 'title':'Dr. House',
' 'normalizedtitle': 'dr-house',
' 'desc':'3* Stagione Ep.9 -...',
' 'genre':'intrattenimento',
' 'subgenre':'fiction',
' 'prima':false
Colonna = COLONNA_BASE
' Le prime "colonne" sono occupate da altri campi:
' {'channel':'931',
' 'banned':false,
' 'plan':[
Selezionato = False ' Se nella riga c'e' un evento selezionato, lo scrive anche nel foglio a parte.
' Questo flag viene quindi attivato se l'evento attualmente elaborato corrisponde ai criteri di ricerca.
' ************* Estrazione campi dalla riga ************
While InStr(riga, "'") > 0
If abort = True Then
frmSetup.txtStatus.Caption = "INTERROTTO"
Exit Sub
End If
Colonna = Colonna + 1
' ********** Estrazione dati singolo campo
InizioCampo = InStr(riga, "'")
FineCampo = InStr(InizioCampo + 1, riga, "'")
LunghCampo = FineCampo - InizioCampo - 1
If LunghCampo > 0 Then
campo = Mid$(riga, InizioCampo + 1, LunghCampo) ' Elimina ritorni a capo.
'campo = Replace(Mid$(riga, InizioCampo + 1, LunghCampo), Chr$(13) & Chr$(10), "") ' Elimina ritorni a capo.
campo = Replace(campo, "*", "'") ' Rimette a posto eventuali apostrofi cancellati.
Else
campo = "VUOTO"
End If
' Costruzione data:
DataEvento = Mid$(Data, 4, 2) & "/" & Mid$(Data, 7, 2) & "/" & "20" & Mid$(Data, 1, 2)
If Weekday(DataEvento) = 1 Then
GiornoSettimanaEvento = WeekdayName(7)
Else
GiornoSettimanaEvento = WeekdayName(Weekday(DataEvento) - 1)
End If
' "Colonna" è in realtà il contatore della posizione del campo nel file. Nel nuovo formato di file,
' anche i nomi dei campi sono delimitati e quindi appaiono come se fossero campi, quindi vanno saltati.
' La variabile serve per capire a quale variabile assegnare il valore letto per il campo.
If Colonna = COLONNA_BASE + 2 Then IdEvento = campo
If Colonna = COLONNA_BASE + 4 Then IdInternoEvento = campo
If Colonna = COLONNA_BASE + 6 Then OrarioEvento = campo
If Colonna = COLONNA_BASE + 8 Then DurataEvento = campo
If Colonna = COLONNA_BASE + 10 Then TitoloEvento = campo
If Colonna = COLONNA_BASE + 12 Then TitoloNormEvento = campo
If frmSetup.chkPlot.Value = True Then
TramaEvento = ScaricaTrama((IdEvento)) ' Scarica trama completa
Else
If Colonna = COLONNA_BASE + 14 Then TramaEvento = campo
End If
If Colonna = COLONNA_BASE + 16 Then GenereEvento = campo
If Colonna = COLONNA_BASE + 18 Then SottoGenereEvento = campo
If ricerca <> "" And InStr(UCase$(campo), UCase$(ricerca)) > 0 Then ' Se l'evento corrisponde al campo di ricerca...
Selezionato = True
End If
riga = Right$(riga, Len(riga) - FineCampo - 1) ' Cancella dall'inizio della riga il campo appena elaborato, e ricomincia.
Wend
Worksheets(NOME_FOGLIO_GLOBALE).Cells(NumEventi, 1) = genere
Worksheets(NOME_FOGLIO_GLOBALE).Cells(NumEventi, 2) = canale
Worksheets(NOME_FOGLIO_GLOBALE).Cells(NumEventi, 3) = posizione
Worksheets(NOME_FOGLIO_GLOBALE).Cells(NumEventi, 4) = nome
Worksheets(NOME_FOGLIO_GLOBALE).Cells(NumEventi, 5) = GiornoSettimanaEvento
Worksheets(NOME_FOGLIO_GLOBALE).Cells(NumEventi, 6) = DataEvento
' ******** fine campi indipendenti dal file-evento
Worksheets(NOME_FOGLIO_GLOBALE).Cells(NumEventi, 7) = IdEvento
Worksheets(NOME_FOGLIO_GLOBALE).Cells(NumEventi, 8) = IdInternoEvento
Worksheets(NOME_FOGLIO_GLOBALE).Cells(NumEventi, 9) = OrarioEvento
Worksheets(NOME_FOGLIO_GLOBALE).Cells(NumEventi, 10) = DurataEvento
Worksheets(NOME_FOGLIO_GLOBALE).Cells(NumEventi, 11) = TitoloEvento
Worksheets(NOME_FOGLIO_GLOBALE).Cells(NumEventi, 12) = TramaEvento
Worksheets(NOME_FOGLIO_GLOBALE).Cells(NumEventi, 14) = GenereEvento
Worksheets(NOME_FOGLIO_GLOBALE).Cells(NumEventi, 15) = SottoGenereEvento
Worksheets(NOME_FOGLIO_GLOBALE).Cells(NumEventi, COLONNA_LINK) = Replace(STRINGA_EVENTO, "EEEEEEEE", IdEvento)
If Selezionato = True Then ' Se richiesto, mette in altro foglio risultati di ricerca:
Debug.Print "Scarico dettagli evento " & IdEvento
TramaEvento = ScaricaTrama((IdEvento))
NumeroEventiSelezionati = NumeroEventiSelezionati + 1
Worksheets(NOME_FOGLIO_RICERCA).Cells(NumeroEventiSelezionati, 1) = nome
Worksheets(NOME_FOGLIO_RICERCA).Cells(NumeroEventiSelezionati, 2) = posizione
Worksheets(NOME_FOGLIO_RICERCA).Cells(NumeroEventiSelezionati, 3) = GiornoSettimanaEvento
Worksheets(NOME_FOGLIO_RICERCA).Cells(NumeroEventiSelezionati, 4) = DataEvento
Worksheets(NOME_FOGLIO_RICERCA).Cells(NumeroEventiSelezionati, 5) = OrarioEvento
Worksheets(NOME_FOGLIO_RICERCA).Cells(NumeroEventiSelezionati, 6) = DurataEvento
Worksheets(NOME_FOGLIO_RICERCA).Cells(NumeroEventiSelezionati, 7) = TitoloEvento
Worksheets(NOME_FOGLIO_RICERCA).Cells(NumeroEventiSelezionati, 8) = TramaEvento
Selezionato = False
End If
ContenutoFileEvento = Right$(ContenutoFileEvento, Len(ContenutoFileEvento) - FineRiga - 1) ' Elimina dalla stringa la riga appena letta.
Wend
End Sub
c'e' una cartella TEMP in C:\ ?rob64 ha scritto:Grazie per il lavoro ma io con Excel 2003 Sp3 su Seven Professional 32 bit
scarico solo le prime 3 colonne.
Genere canale
Posizione
Nome Canale
Tutte le altre colonne sono vuote ...
jumpjack ha scritto:c'e' una cartella TEMP in C:\ ?
Era anche il mio problema. Dici che è possibile, in una prossima versione, usare la temp dell'utente (leggendola dall'ambiente) in modo che non sia più necessario creare la cartella in c:\ ?jumpjack ha scritto:c'e' una cartella TEMP in C:\ ?
Se in VBA si possono leggere le variabili d'ambiente, sì.nicksoft ha scritto:Era anche il mio problema. Dici che è possibile, in una prossima versione, usare la temp dell'utente (leggendola dall'ambiente) in modo che non sia più necessario creare la cartella in c:\ ?
grazie e complimenti per il tuo lavoro
A scaricare il file originale da cui estraggo la trama. In effetti forse è inutile...Marcellotwo ha scritto:Ottimo lavoro! Finalmente si ritorna al cinema!
Il programma (ver 3.10) è già utilizzabile così com'è ma volevo segnalarti alcuni malfunzionamenti e chiedere chiarimenti con l'intento di migliorare il sw.
1) Il link dati porta ad un file con estensione ".do" (Db Oracle?) scaricabile o apribile (anche con notepad) ma che contiene comunque la trama visibile con doppio click. A cosa serve?
Infatti non ho controllato se funzionava.2) Il link pagina non funziona
Ah, quindi non ha cambiato nome? E' stata solo eliminata la sezione quando tutti i canali sono diventati HD?3) Alla luce della nuova programmazione Sky eliminerei la voce "hd" nella finestra scarica che infatti se settata non scarica nulla
A visuaizzare solo i risultati della ricerca per singolo canale e/o evento, mostrando per gli eventi trovati anche le trame complete.4) A cosa serve il foglio Excel "Dettagli"?
Se hai già usato almeno una volta la macro, sull'hard disk ci sono già i file scaricati, quindi è inutile perdere tempo a riscaricarli. Se pero' i file sono vecchi, va forzato lo scaricamento.5) Non ho capito a cosa servono le opzioni "Forza scaricamento"
Il programma diventa circa un centinaio di volte più lentoe "Trame (lento)".
Non mi risulta che le macro in Visual Basic girino su openoffice, bisognerebbe riscriverle da zero in python...niente con mac nn riesco farlo funzionare.
ho openoffice apro la macro ma niente dà un errore di compilazione.
avete qlk consiglio da darmi?
grazie
E' che non tutti hanno la cartella Temp in C: !Marcellotwo ha scritto:Capisco che non si può accontentare tutti ma la modifica della C:\Temp non mi sembra una buona idea perchè mi ritrovo una sfilza di file di lavoro (inutili per un accesso diretto) nella stessa cartella dove risiedono per default tutti i files di Excel di uso quotidiano! Una mescolanza davvero orribile!![]()
Pur non campendo qual'era il problema di allocare i files in C:\Temp le
Si potrebbe fare leggendo la variabile di ambiente... pero' ho scoperto che esistono DUE variabili d'ambiente (TEMP e TMP), quindi...?soluzioni (ammesso che tu abbia voglia di approntare una ver 3.2.2) potrebbero essere diverse:
1) La cartella di sistema "C:\Users\Fiorenzo\AppData\Local\Temp" (Nel caso di Windows 7)
E' quello che succede adesso!2) La cartella dove si trova il file "palinsesti-sky-321.xls" che poi naturalmente l'utente metterà dove vuole
2 palle....3) Tramite un pulsante "Configurazione" lasciarlo decidere all'utente![]()
V. punto 3.4) Solo al momento del primo utilizzo far aprire "Esplora risorse" e lasciar scegliere all'utente .