Autore Topic: Importare un calendario da Microsoft Works  (Letto 6060 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline bibbolo

  • Post: 1122
Importare un calendario da Microsoft Works
« il: 16 Marzo 2010 22:33:34 »
Come da oggetto, è possibile? Ho esportato da MS Works un calendario salvandolo appunto con estensione .ics, poi da Sunbird ho cliccato su "importa", ho selezionato il calendario ma mi è uscito un messaggio di errore.. non sono compatibili?

Offline reherd

  • Post: 343
Re: Importare un calendario da Microsoft Works
« Risposta #1 il: 17 Marzo 2010 14:49:10 »
Il formato iCalendar è un formato standard aperto quindi, in teoria, la compatibilità dovrebbe esserci (bug a parte e MS permettendo ;-)).

Per Sunbird\Lightning ci sono dei problemi noti quando si tenta di importare un calendario ics (che è un file in puro testo) contenente alcuni caratteri particolari o che non sono strettamente codificati in UTF-8.

Quale versione di Sunbird utilizzi? Qual'è il messaggio di errore che salta fuori? Sulla console degli errori (menu Strumenti) viene visualizzato qualche messaggio?

Offline bibbolo

  • Post: 1122
Re: Importare un calendario da Microsoft Works
« Risposta #2 il: 17 Marzo 2010 20:30:40 »
Versione di Sunbird: 0.9

L'errore che registra la console degli errori è il seguente:

Codice: [Seleziona]
Errore: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIScriptableUnicodeConverter.convertFromByteArray]"  nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)"  location: "JS frame :: file:///C:/Program%20Files/Mozilla%20Sunbird/components/calItemModule.js -> file:///C:/Program%20Files/Mozilla%20Sunbird/js/calIcsParser.js :: ip_parseFromStream :: line 185"  data: no]
File sorgente: file:///C:/Program%20Files/Mozilla%20Sunbird/components/calItemModule.js -> file:///C:/Program%20Files/Mozilla%20Sunbird/js/calIcsParser.js
Riga: 185

Offline reherd

  • Post: 343
Re: Importare un calendario da Microsoft Works
« Risposta #3 il: 17 Marzo 2010 22:17:12 »
Sembra che il problema sia proprio quello della codifica UTF-8.
Se provi ad aprire il file ics dal menu File -> Apri -> File calendario... anziché importarlo, dovrebbe comparirti questo avviso sulla console degli errori:

Codice: [Seleziona]
Avviso: Si è verificato un errore durante la lettura dei dati dal calendario: xxxxxx. È stato impostato in modalità  di sola lettura, dato che per ogni cambiamento in questo calendario si potrebbe verificare una perdita di dati.  È possibile cambiare queste impostazioni selezionando 'Modifica calendario'. Codice di errore: CAL_UTF8_DECODING_FAILED. Descrizione: Si è verificato un errore durante la decodifica di un file iCalendar (ics) come UTF-8. Controllare che il file, inclusi i simboli e le lettere accentate, sia codificato con UTF-8.
Aprendo il file con un editor di puro testo che rispetta la codifica UTF-8, dovresti vedere alcuni caratteri strani sparsi per il file. Forse dovresti vederli anche aprendo il file con Firefox (menu File->Apri file...).

Come tentativo, se i caratteri sono pochi, facilmente identificabili e non sono in posizioni critiche potresti provare a cancellarli o sostituirli con caratteri validi tramite l'editor di testo, certo che dipende anche dalla dimensione del file.
Ovviamente, prima di tentare modifiche al file originale, fanne una copia.

Non saprei come fare altrimenti.

Offline bibbolo

  • Post: 1122
Re: Importare un calendario da Microsoft Works
« Risposta #4 il: 17 Marzo 2010 23:50:25 »
Caspita mi sa che hai ragione, ma dal blocconote non ho notato caratteri strani, a meno che non vengano codificati punti esclamativi, simboli come l'euro o apostrofi...

p.s. quale differenza c'è tra importare e aprire un file calendario?

Offline reherd

  • Post: 343
Re: Importare un calendario da Microsoft Works
« Risposta #5 il: 18 Marzo 2010 14:01:49 »
Caspita mi sa che hai ragione, ma dal blocconote non ho notato caratteri strani, a meno che non vengano codificati punti esclamativi, simboli come l'euro o apostrofi...

Non so se il blocco note utilizza la codifica UTF-8, magari prova con un editor più evoluto tipo Notepad++, SciTe, ecc. Comunque anche le lettere accentate sono un problema se non sono codificate in UTF-8.

p.s. quale differenza c'è tra importare e aprire un file calendario?

Non ne ho idea, so solo che quando apri un file con menu File->Apri viene creato un calendario nuovo con il nome del file, mentre importandolo inserisci gli eventi del nuovo file in un calendario esistente.

Offline bibbolo

  • Post: 1122
Re: Importare un calendario da Microsoft Works
« Risposta #6 il: 19 Marzo 2010 09:59:05 »
Grandioso, sono riuscito a risolvere la compatibilità della codifica UTF-8 proprio grazie all'editor da te segnalato (Notepad ++) che mi evidenziava in automatico tutti i caratteri da correggere in UTF-8, evitando cosi un lavoro lungo e difficile. Ho capito anche la differenza tra aprire e importare: il primo ti mette il calendario selezionabile nella lista a sinistra, nella quale puoi averne anche altri così da vederli tutti anche contemporaneamente incastrando o sovrapponendo gli appuntamenti di uno con quelli dell'altro a seconda di quelli che selezioniamo o deselezioniamo, mentre il secondo invece ti importa tutto nel tuo calendario predefinito senza possibilità di deselezionarlo. Ho riscontrato però altre imperfezioni nella compatibilità MS-Mozilla per quanto riguarda gli orari degli appuntamenti.. e vabbé pazienza, sono abbastanza soddisfatto così per il momento  :D

Offline reherd

  • Post: 343
Re: Importare un calendario da Microsoft Works
« Risposta #7 il: 19 Marzo 2010 14:17:12 »
Grandioso, sono riuscito a risolvere la compatibilità della codifica UTF-8

Bene!

il secondo invece ti importa tutto nel tuo calendario predefinito senza possibilità di deselezionarlo.

In realtà se hai più calendari ti viene chiesto in quale di essi vuoi importare i nuovi eventi.

Ho riscontrato però altre imperfezioni nella compatibilità MS-Mozilla per quanto riguarda gli orari degli appuntamenti..

Per curiosità, puoi incollare qui uno di quegli eventi per i quali riscontri delle incompatibilità negli orari?
Per l'evento in questione, dovresti incollare la parte di testo del file .ics che è compresa tra le righe
"BEGIN:VEVENT" e "END:VEVENT"
ovviamente dopo aver cancellato o sostituito qualunque riferimento a dati personali.
Puoi trovare gli eventi in questione cercando nel file di testo il titolo dell'evento (SUMMARY) che è appunto compreso tra i due marcatori di inizio e fine evento.

Offline bibbolo

  • Post: 1122
Re: Importare un calendario da Microsoft Works
« Risposta #8 il: 20 Marzo 2010 17:23:07 »
Il problema è che tutti gli eventi compresi tra il BEGIN e L'END hanno il medesimo codice:

Codice: [Seleziona]
BEGIN:VEVENT
DTSTAMP:20100319T084405Z
UID:1DA27D16-3BA4-4BD8-817D-30454ED7761E
DTSTART:20100312T140000Z
DTEND:20100312T143000Z

....testo personale....

END:VEVENT

Nella fattispecie mi è capitato che alcuni eventi che dal calendario di MS riguardavano solo una giornata intera, una volta importati in Sunbird mi sono stati registrati su due giorni consecutivi, come se iniziassero quel giorno e finiessero il giorno dopo, non capisco perché...   :?

Offline reherd

  • Post: 343
Re: Importare un calendario da Microsoft Works
« Risposta #9 il: 20 Marzo 2010 20:03:16 »
DTSTART:20100312T140000Z
DTEND:20100312T143000Z

I tempi indicati con la "Z" in fondo sono espressi in UTC che praticamente coincide con il tempo medio di Greenwich, quindi dovrebbero essere un'ora avanti se su Sunbird hai impostato il fuso orario di Roma (o Europeo).
Riscontri questa cosa?
Senza la "Z" sono invece "tempi locali" cioè senza alcun riferimento a fusi orari.

Nella fattispecie mi è capitato che alcuni eventi che dal calendario di MS riguardavano solo una giornata intera, una volta importati in Sunbird mi sono stati registrati su due giorni consecutivi, come se iniziassero quel giorno e finiessero il giorno dopo, non capisco perché...   :?

Potresti postare anche uno di questi eventi "da una giornata intera"?  (facendo attenzione magari a non tagliare troppo).

Offline bibbolo

  • Post: 1122
Re: Importare un calendario da Microsoft Works
« Risposta #10 il: 21 Marzo 2010 03:08:31 »
Sì il codice che ti ho postato riguarda tutti gli eventi, anche quelli a giornata intera...

Offline reherd

  • Post: 343
Re: Importare un calendario da Microsoft Works
« Risposta #11 il: 21 Marzo 2010 09:20:38 »
Sì il codice che ti ho postato riguarda tutti gli eventi, anche quelli a giornata intera...

Il codice che hai postato riguarda un evento che avviene il 12 di marzo del 2010 alle 14:00 e finisce alle 14:30 con fuso orario UTC (un'ora avanti rispetto al nostro).
In DTSTART e DTEND la parte prima della "T" rappresenta la data e la parte dopo l'orario.

Gli eventi di tutto il giorno devono avere un orario diverso: o non hanno la parte riguardante il tempo oppure presentano il valore 000000; mentre la data dovrebbe includere il giorno dell'evento per DTSTART e il giorno successivo per DTEND (se durano un giorno).

Se mi dici che tutti gli eventi hanno gli stessi valori per DTSTART e DTEND, sarebbero tutti sovrapposti in un unico punto del calendario e questo l'avresti notato. Per quanto sia, non credo che MS Works esporti in formato ics in un modo così assurdo ;-) ( comunque, se fosse così, Sunbird sarebbe totalmente esente da colpe).

Offline bibbolo

  • Post: 1122
Re: Importare un calendario da Microsoft Works
« Risposta #12 il: 21 Marzo 2010 13:24:34 »
Hai ragione sorry, mi era sembrato che fossero tutti uguali... ma ho notato che non sono nemmeno messi in ordine temporale se apro il testo con l'editor, infatti l'ultimo evento in fondo al testo mi riporta la data

DTSTART:20100312T140000Z
DTEND:20100312T143000Z

ossia 12 marzo, mentre io so di per certo che nel mio calendario l'ultima data con appuntamenti è al 31/03. Pertanto per trovare quell'appuntamento a giornata intera (o meglio uno dei tanti), ho dovuto ricercarlo manualmente nel testo, il codice è:

Codice: [Seleziona]
BEGIN:VEVENT
DTSTAMP:20100319T084405Z
UID:B3BDB2A5-F9CD-4B34-9089-7EF61A913F4E
DTSTART:20100325T230000Z
DTEND:20100326T230000Z
SUMMARY;ENCODING=QUOTED-PRINTABLE:TESTO PERSONALE
CATEGORIES;ENCODING=QUOTED-PRINTABLE:Senza categoria
LOCATION;ENCODING=QUOTED-PRINTABLE:testo personale
END:VEVENT

Offline reherd

  • Post: 343
Re: Importare un calendario da Microsoft Works
« Risposta #13 il: 22 Marzo 2010 09:55:29 »
...ho notato che non sono nemmeno messi in ordine temporale

non credo che gli eventi nel file esportato debbano seguire l'ordine di scadenza, non so quale ordine seguano, forse quello di creazione, forse non c'è neanche un ordine.

Codice: [Seleziona]
BEGIN:VEVENT
DTSTAMP:20100319T084405Z
UID:B3BDB2A5-F9CD-4B34-9089-7EF61A913F4E
DTSTART:20100325T230000Z
DTEND:20100326T230000Z
SUMMARY;ENCODING=QUOTED-PRINTABLE:TESTO PERSONALE
CATEGORIES;ENCODING=QUOTED-PRINTABLE:Senza categoria
LOCATION;ENCODING=QUOTED-PRINTABLE:testo personale
END:VEVENT

Ho controllato meglio e nel post precedente ho scritto una cosa inesatta. Gli eventi di tutto il giorno dovrebbero essere espressi nella forma senza l'orario e non con tempo 000000 (vedi le specifiche iCalendar qui).
Quindi il tuo evento viene interpretato correttamente da Sunbird come un evento che parte dalle 00:00 del 25/3/2010 alle 00:00 del 26/3/2010 (dove 00:00 secondo il fuso orario di Roma sarebbe 230000Z cioè le 23:00 UTC), cioè un evento che dura 24 ore ma non un "evento di tutto il giorno" che invece avrebbe dovuto essere:

DTSTART:20100325             oppure               DTSTART;VALUE=DATE:20100325
DTEND:20100326                                         DTEND;VALUE=DATE:20100326

Sembra quindi che sia MS Works a sbagliare in questo caso (se hai impostato correttamente l'evento).
Per un confronto, anche il calendario di Google non interpreta quell'evento come un evento di tutto il giorno.

Forse una cosa che potresti fare prima di esportare da Works sarebbe di impostare (in Works) il fuso orario corretto in modo da eliminare gli orari espressi in UTC (la "Z" dopo gli orari), ma non cambierebbe nulla per gli eventi di tutto il giorno.
Oppure un bel "cerca e sostituisci" nel file di testo (una copia) sostituendo "T230000Z" con "" (stringa nulla) ma andrebbe fatto con attenzione per non cancellare anche orari che non c'entrano nulla. A tuo rischio e pericolo ;-).

0 Utenti e 1 Visitatore stanno visualizzando questo topic.