Pagina 1 di 1
Come convertire un documento Word in data base?
Inviato: mer feb 04, 2015 7:26 am
da Fiopri
Ciao ragazzi, spero di ver scelto la sezione giusta, se così non è provvederanno i moderatori.
Dispongo di un documento di solo testo, in formato MS Word, composto prevalentemente da citazioni, in totale dovrebbero essere oltre duemila.
Per ognuna è indicata:
- la fonte,
- l'autore,
- l'anno.
Inoltre, ognuna di queste citazioni appartiene ad un "capitolo" che domani potrebbe essere un gruppo o un tag.
L'obietttivo è quello di trasferire queste citazioni sul web, ovviamente dopo aver convertito il formato in un data base.
Mi chiedevo se oltre al copia incolla manuale, esistesse un modo per semplificare l'operazione.
Grazie a coloro che sapranno darmi indicazioni utili. 
Re: Come convertire un documento Word in data base?
Inviato: mer feb 04, 2015 6:06 pm
da Zane
Urca!! Non vedo altre soluzioni se non scrivere qualcosa ad hoc che apra il testo Word, faccia il parsing dei dati e li spari nel DB. Non-banale, ma nemmeno impossibile.
Per quanto riguarda tool già pronti, io non ne conosco.
Re: Come convertire un documento Word in data base?
Inviato: mer feb 04, 2015 6:25 pm
da Andy94
Non conosco tool già pronti nemmeno io, però potrei azzardare una soluzione come questa.
So che mi scatenerò contro le (giuste) ire dei puristi, ma se si denota un pattern comune conviene comunque provare.
Che versione di Word è stata usata per fare il documento? Il formato è DOC o DOCX? Visto che il codice usato per un documento Word è assimilabile a un "quasi" HTML, un parser tramite espressioni regolari o tramite PHP potrebbe altresì essere una soluzione.
Questo ovviamente a condizione che i dati siano tra loro formattati in modo diverso (es. citazione tra virgolette, autore e anno in corsivo e similari).
Re: Come convertire un documento Word in data base?
Inviato: mer feb 04, 2015 8:14 pm
da developerwinme
Andy94 ha scritto: Il formato è DOC o DOCX?
Se il formato è DOCX (ma comunque, avendo Office 2013/2010/2007 (meglio 2013, perché supporta il formato "Strict" di DOCX), dovrebbe essere possibile convertire in DOCX anche i DOC), forse si può parsare con gli strumenti messi a disposizione da Microsoft ( https://msdn.microsoft.com/en-us/librar ... e.15).aspx ): non li ho mai usati, ma magari possono tornare d'aiuto. 
Re: Come convertire un documento Word in data base?
Inviato: gio feb 05, 2015 2:32 am
da Fiopri
Grazie a tutti per i vostri contributi.
Temevo non ci fossero strumenti o automatismi adatti allo scopo, e voi me lo avete in parte confermato, non ho ancora consultato il link a MS che gentilmente mi ha passato developpermind, lo consulterò con attenzione.
Nel fratempo aggiungo che il documento è stato creato con Word 2003, ma credo che il problema sia rappresentato dalla assoluta assenza di elementi che contaddistinguono i futuri campi del record, ovvero il capitolo/gruppo, la fonte, l'autore, l'anno ed infine il testo della citazione.
Per poter essere riconosciuti dovrebbero essere contassegnati prima, uno ad uno, perchè oggi sono solo riferimenti che costituiscono parte integrante del testo, inoltre non sono sempre nella stessa posizione rispetto agli altri elementi che dovrebbero comporre il record.
Se allo stato attuale non sarà possibile automatizzare il processo, converrà contrassegnare i circa 8.000 campi, o a quel punto converrà accollarsi 8.000 copia-incolla?
Re: Come convertire un documento Word in data base?
Inviato: gio feb 05, 2015 8:21 am
da Andy94
Secondo me, se si vuole sviluppare un automatismo di qualsiasi forma andrebbe provato su di un campione di elementi (ad es. 50) che sono stati preventivamente formattati a dovere.
In questo modo si potrebbero cogliere le eventuali potenzialità e carenze di un sistema del genere, al fine di capire se:
- Valga la pena formattarli tutti e poi lasciar fare all'automatismo
- Convenga armarsi di pazienza e copiaincollare il tutto.
Re: Come convertire un documento Word in data base?
Inviato: gio feb 05, 2015 9:38 am
da Al3x
Fiopri ha scritto:
Per poter essere riconosciuti dovrebbero essere contassegnati prima
pensavo all'inserimento manuale di un carattere che faccia da separatore di campi e record in modo da tentare un import con access e di seguito un export nel formato che si desidera. Una soluzione laboriosa ma meno impegnativa del copia-incolla.
potresti postare un esempio, tipo un paio di citazioni e quali i punti in cui devono per te essere suddisi in campi? (fonte, autore, anno e testo ecc.)
Re: Come convertire un documento Word in data base?
Inviato: gio feb 05, 2015 9:40 am
da Andy94
Di solito, quando devo fare una cosa di questo tipo (che rimane una buona idea, semplificando anche il lavoro per un eventuale parser) uso il carattere §. L'unico scenario di utilizzo nel mio caso 
Re: Come convertire un documento Word in data base?
Inviato: gio feb 05, 2015 9:50 am
da Al3x
con le funzioni interne di word si possono automatizzare o semplificare alcune operazioni quali la ripetizione dell'ultimo comando (tasto F4) e con trova\sostituisci. Per chi sa usare le macro (ogni riga vuota si comanda l'inserimento del carattere di separazione) il lavoro diventa ancora più semplice
Re: Come convertire un documento Word in data base?
Inviato: gio feb 05, 2015 10:01 am
da Fiopri
Andy94 ha scritto:Secondo me, se si vuole sviluppare un automatismo di qualsiasi forma andrebbe provato su di un campione di elementi (ad es. 50) che sono stati preventivamente formattati a dovere.
In questo modo si potrebbero cogliere le eventuali potenzialità e carenze di un sistema del genere, al fine di capire se:
- Valga la pena formattarli tutti e poi lasciar fare all'automatismo
- Convenga armarsi di pazienza e copiaincollare il tutto.
Hai ragione Andy94, bisogna vedere se ne vale la pena, perché:
- nelle citazioni non sempre sono presenti tutti i "campi" menzionati;
- questi "campi" non sono sempre nella stessa posizione, a volte sono all'inizio, a volte alla fine, ma altre volte sono inseriti pure nel testo della citazione, fra parentesi o altri segni;
non vedo come un automatismo/programma tradizionale, per la conversione dei formati, potrebbe capire se sono presenti i campi, dove sono collocati rispetto agli altri ecc.
Con programmi fatti su misura e corredti di adeguate tecnologie forse si riuscirebbe, ma temo che costerebbe molto di più di un copia-incolla fatto a manina.
Ipotizziamo 2.000 citazioni, un minuto e mezzo cad. per copiare i 4 campi, in totale servirebbero circa 50 ore, oggi quantificabili in 500 euro, se affidate a qualche studente.
Quanto mi costerebbe se fatto con un apposito programma?
Non considero nemmeno l'ipotesi della preventiva "normalizzazione" dei testi, perchè impiegherei gli stessi tempi di un copia-incolla direttamente nel database.
Re: Come convertire un documento Word in data base?
Inviato: gio feb 05, 2015 10:03 am
da Andy94
- nelle citazioni non sempre sono presenti tutti i "campi" menzionati;
- questi "campi" non sono sempre nella stessa posizione, a volte sono all'inizio, a volte alla fine, ma altre volte sono inseriti pure nel testo della citazione, fra parentesi o altri segni;
Questo è un problema per un parser, che magari si aspetta una costanza nell'ordine dei campi
Fiopri ha scritto:Quanto mi costerebbe se fatto con un apposito programma?
Non saprei dirti, il problema sicuramente è che l'apposito programma va prima di tutto trovato...
Re: Come convertire un documento Word in data base?
Inviato: gio feb 05, 2015 10:09 am
da Al3x
Fiopri ha scritto:
- questi "campi" non sono sempre nella stessa posizione, a volte sono all'inizio, a volte alla fine, ma altre volte sono inseriti pure nel testo della citazione, fra parentesi o altri segni;
bel problema, i dati non possiedono una struttura e sono un susseguirsi di caratteri alfanumerici privi di uno schema, una specie di blob difficilmente gestibile in automatico, vedo il copia&incolla a manina nel tuo futuro 
p.s. cmq non ci hai postato alcun esempio, coperti da segreto militare oppure roba a sfondo erotico? 
Re: Come convertire un documento Word in data base?
Inviato: gio feb 05, 2015 10:44 am
da Fiopri
Al3x ha scritto:Fiopri ha scritto:
Per poter essere riconosciuti dovrebbero essere contassegnati prima
pensavo all'inserimento manuale di un carattere che faccia da separatore di campi e record in modo da tentare un import con access e di seguito un export nel formato che si desidera. Una soluzione laboriosa ma meno impegnativa del copia-incolla.
potresti postare un esempio, tipo un paio di citazioni e quali i punti in cui devono per te essere suddisi in campi? (fonte, autore, anno e testo ecc.)
Pure io avevo pensato ad un'ipotesi di questo genere, ma, non essendo un programatore, suppongo che sarebbe necessario contassegnare inizio e fine record, oltre all'inizio e fine degli altri quattro campi in modo diverso uno dall'altro. Giusto?
Se così fosse dovremmo contrassegnare inizio e fine di ogni campo con cinque diversi caratteri, senza contare capitoli perchè potremmo processarli uno ad uno.
Orbene, l'inserimento di 10 caratteri speciali per 2.000 citazioni significa inserire 20.000 caratteri nella giusta posizione, secondo me richiederebbe tempi molto simili al copia-incolla. Sbaglio?
Dove sono ora non ho il documento ma provvederò a postare qualche citazione a titolo di esempio.
Re: Come convertire un documento Word in data base?
Inviato: gio feb 05, 2015 10:57 am
da Fiopri
Re: Come convertire un documento Word in data base?
Inviato: gio feb 05, 2015 11:46 am
da Al3x
Fiopri ha scritto:
Comunque se tu fossi la stessa persona dell'avatar
non ti conviene, 180m x 80kg, uomo e pieno di peli 
Re: Come convertire un documento Word in data base?
Inviato: gio feb 05, 2015 12:58 pm
da Fiopri
Infatti ho scritto SE TU FOSSI 
Re: Come convertire un documento Word in data base?
Inviato: gio feb 05, 2015 2:09 pm
da Al3x
Fiopri ha scritto:Infatti ho scritto SE TU FOSSI

benissimo, ma in questi casi meglio chiarire 
Re: Come convertire un documento Word in data base?
Inviato: ven feb 06, 2015 11:20 pm
da drilloman
se il file non è strutturato in "campi" la vedo dura...
al massimo potresti procedere per blocchi del file in cui riesci a riconoscere una qualche forma di struttura e pezzo per pezzo costruire un file ordinato, esportarlo in testo o csv e poi procedere con una qualche importazione.