Uno degli aspetti deleteri dell'informatica è stato il proliferare di formati incompatibili nei file di dati.
In questo capitolo si raccolgono le informazioni sugli strumenti a disposizione per poter recuperare dati contenuti in file con un formato che in passato hanno avuto una certa diffusione. Come si può intuire, di solito non si tratta delle dotazioni normali di una distribuzione GNU/Linux, per cui, i programmi che vengono descritti qui vanno forse cercati tra i «contributi» esterni alla propria distribuzione.
Quando si convertono dati da un formato a un altro, il primo problema è e quello di traslitterare l'insieme di caratteri. Purtroppo, non sempre è possibile «traslitterare» in modo reversibile, spesso si è costretti ad accettare una trasformazione che non permette più di riottenere lo stesso formato iniziale. Questo fatto si comprende facilmente pensando alla necessità eventuale di convertire un insieme di caratteri in un altro in cui non si dispone di alcuni simboli del primo.
Un caso particolare riguarda le conversioni di file di testo dove da un sistema di interruzioni di riga composte dalla sequenza <CR><LF> si vuole passare al solo <LF>. Per qualche motivo, il file di origine potrebbe contenere qualche codice <LF> isolato, che nel file di destinazione verrebbe interpretato alla fine come un'interruzione di riga. In pratica, se si volesse riconvertire il file nel formato precedente, tutti i codici <LF> verrebbero riconvertiti in <CR><LF>.
recode [<opzioni>] <codifica-prima>:<codifica-dopo> [<file>...] |
recode
è un programma per la conversione di file da un insieme di caratteri a un altro. recode
non si limita semplicemente a questo; spesso è in grado di intervenire anche su codifiche composte da sequenze di caratteri, anche se in queste situazioni il suo utilizzo si complica, e i risultati non sono sempre garantiti.
Osservando lo schema sintattico mostrato, si può vedere che è necessario indicare il tipo di conversione attraverso due parole chiave: la prima serve a stabilire il modo in cui sono codificati i dati in ingresso, la seconda stabilisce in che modo li si vuole trasformare in uscita.
Il file, o i file in ingresso possono essere indicati alla fine della riga di comando, e in tal caso recode
tenta di sovrascriverli, oppure gli possono essere forniti attraverso lo standard input, e quindi il risultato della conversione si ottiene dallo standard output.
Bisogna essere prudenti con |
Nel suo piccolo, recode
è un programma complesso. Questa sezione ne mostra solo alcuni aspetti banali, mentre per sfruttare bene tutte le sue potenzialità è necessario leggere la sua documentazione: recode.info.
|
Questa opzione è speciale e di solito viene usata da sola, senza indicare altri argomenti nella riga di comando di recode
. Serve per ottenere da recode
un riassunto sulle possibilità di conversione da o verso la codifica indicata.
|
Questa opzione riguarda la conversione dall'insieme di caratteri IBM-PC
, a un altro tipo, dove si vuole tentare di trasformare in qualche modo i simboli grafici tipici di quella codifica. È evidente che questa conversione è irreversibile.
Le codifiche da utilizzare nelle conversioni sono indicate attraverso la notazione <codifica-prima>:<codifica-dopo>, come si vede nello schema sintattico introduttivo. Le parole chiave utilizzate per questo possono essere indicate indifferentemente utilizzando le lettere minuscole o maiuscole. L'elenco delle codifiche (e quindi delle trasformazioni possibili) è molto lungo, e potrebbe essere ottenuto un riepilogo attraverso l'opzione
. Tuttavia, sarebbe meglio leggere prima ciò che è stato annotato nel documento recode.info al riguardo, per non rischiare di trovarsi poi nei pasticci.
-
a
Alcuni insiemi di caratteri hanno un nome standard che contiene il simbolo di due punti ( |
IBM437 | 437 | cp437 |
Rappresenta la codifica IBM usata normalmente nei PC. Quando si converte da questa codifica a un'altra, i codici di interruzione di riga vengono lasciati inalterati.
IBM-PC | ibmpc |
È praticamente la stessa codifica IBM437, con la differenza che quando si converte da questa codifica a un'altra, i codici di interruzione di riga vengono trasformati.
IBM850 | 850 | cp850 |
Rappresenta la codifica IBM usata normalmente nei PC per la localizzazione europea.
ISO_8859 |
Si riferisce alla codifica ISO 8859-1.
$
recode
-
a IBM437
Mostra tutte le possibilità di abbinamento con la codifica IBM437.
$
recode
-
a IBM-
PC
Mostra tutte le possibilità di abbinamento con la codifica IBM-PC.
$
recode IBM
-
PC:ISO_8859-1 lettera
Converte il file lettera
dalla codifica IBM-PC a ISO 8859-1, sovrascrivendo il file.
$
recode IBM
-
PC:ISO_8859-1 < lettera > lettera2
Converte il file lettera
dalla codifica IBM-PC a ISO 8859-1, generando il file lettera2
.
$
recode
-
g IBM-
PC:ISO_8859-1 < schema1 > schema2
Converte il file schema1
dalla codifica IBM-PC a ISO 8859-1, generando il file schema2
, tentando di convertire anche i simboli grafici.
Il software basato sui file in formato .DBF
, ovvero quelli di dBase III, è stato molto importante nell'ambito del sistema operativo Dos. Nel suo piccolo ha permesso agli utenti di quel sistema operativo di realizzare delle strutture di dati che si avvicinavano alle potenzialità di una base di dati relazionale.
Ancora oggi si trovano programmi applicativi gestionali basati su questo formato, scritti probabilmente con il famoso compilatore Clipper. Volendo, esiste del software commerciale che permette di gestire questi file anche con GNU/Linux, ma c'è almeno la possibilità di leggere il contenuto di questi attraverso il programma dbview
.
dbview [<opzioni>] <file-dbf> |
Il programma dbview
consente di leggere il contenuto dei file .DBF
di dBase III, e probabilmente anche le versioni di dBase IV. Se viene avviato senza opzioni, si ottiene la visualizzazione del contenuto del file indicato nel formato predefinito, come si vede dall'esempio seguente:
Articolo : 1 Descr : bicicletta uomo Prezzo u : 500.00 Import : T Scadenza : 20011120 Note : 2 Articolo : 2 Descr : bicicletta donna Prezzo u : 550.00 Import : Scadenza : 20011120 Note : 3 Articolo : 3 Descr : bicicletta uomo/donna leggera Prezzo u : 600.00 Import : Scadenza : 20011120 Note : 4 |
In realtà, in questo modo, i nomi dei campi vengono mostrati in modo diverso dal reale, utilizzando anche le lettere minuscole ed eliminando i simboli di sottolineatura. Utilizzando l'opzione
, il primo record apparirebbe così:
-
r
ARTICOLO : 1 DESCR : bicicletta uomo PREZZO_U : 500.00 IMPORT : T SCADENZA : 20011111 NOTE : 2 |
È necessario osservare che i campi booleani, e in questo caso si tratta di quello intitolato IMPORT
, mostrano solo la lettera T
per i valori booleani Vero, altrimenti non si ha alcuna indicazione; inoltre, le date vengono espresse secondo il formato <AAAA><MM><GG>. Infine, dall'esempio non si intuisce, ma il campo NOTE
è di tipo «memo», e in questo caso si sono persi i dati.
I dati contenuti nei file .DBF
, dal momento che sono stati memorizzati presumibilmente utilizzando il sistema operativo Dos, utilizzano molto probabilmente un insieme di caratteri diverso da Latin-1 o comunque diverso da ciò che si utilizza con GNU/Linux. Pertanto, è probabile che sia necessario rielaborare ciò che si ottiene con dbview
attraverso un programma di conversione come recode
. Tuttavia, è bene considerare che nella storia dei file .DBF
sono state usate anche codifiche differenti dal solito IBM437, e di questo occorre tenerne conto quando ci si accorge che la conversione non funziona come ci si aspetterebbe.
|
Se si utilizza questa opzione, i record vengono mostrati su una sola riga per volta, separando i campi con un simbolo, il separatore, che di solito sono i due punti (:
).
|
Con questa opzione è possibile specificare il simbolo da utilizzare per separare i campi dei record che vengono visualizzati. Il simbolo di separazione predefinito sono i due punti (:
)
|
In questo caso, oltre a mostrare il contenuto del file, nella parte iniziale vengono riepilogate le caratteristiche dei campi contenuti.
|
Non elenca il contenuto del file, ma si limita a dare le altre informazioni se richieste attraverso le opzioni opportune.
|
Mostra i nomi dei campi così come sono stati memorizzati.
$
dbview articoli.dbf
Elenca il contenuto del file articoli.dbf
nella forma predefinita.
$
dbview
-
b articoli.dbf
Mostra i record utilizzando una sola riga per ognuno.
$
dbview
-
b articoli.dbf | recode ibm437:latin1
Come nell'esempio precedente, ma utilizza recode
per trasformare i caratteri speciali che altrimenti non sarebbero visibili correttamente (per esempio le lettere accentate).
Alcuni formati di file utilizzati con MS-Windows sono considerati da molti degli «standard». Tra tutti, il più «importante» è quello di MS-Word, con in più il problema che di questo ne esistono molte versioni.
mswordview [<opzioni>] <file-doc> |
mswordview
è un programma il cui scopo è quello di convertire file di MS-Word in HTML. La conversione non può essere perfetta, ma il progetto è condotto con impegno e i risultati che dà questo programma sono buoni.
Inizialmente, mswordview
è in grado di convertire i file di MS-Word 8, ma dovrebbero aggiungersi successivamente anche i formati precedenti.
mswordview
è in grado di convertire solo un file alla volta, precisamente quello che viene indicato alla fine degli argomenti. Se non viene richiesto qualcosa di particolare attraverso le opzioni, mswordview
tenta di creare un file con lo stesso nome di quello che viene convertito, con l'aggiunta dell'estensione .html
. Inoltre, se il file contiene delle immagini incorporate, queste vengono trasferite su file esterni.
|
Permette di indicare esplicitamente il file HTML che si vuole generare.
|
Permette di annotare gli errori incontrati durante la conversione nel file indicato.
---------------------------
Appunti Linux 1999.07.12 --- Copyright © 1997-1999 Daniele Giacomini -- daniele @ evo.it
[indice generale] [precedente] [successivo] [indice analitico] [note introduttive]