Che cos'è un file a larghezza fissa e delimitata?
Ogni riga in un file rappresenta una riga di dati, ma tali dati sono generalmente suddivisi in campi o colonne. Due metodi standard delineano i campi. Uno è avere campi di lunghezza fissa e quindi record di lunghezza fissa; l'altro è avere campi a lunghezza variabile con record a lunghezza variabile. I campi di lunghezza variabile devono essere separati da un simbolo, che è il delimitatore. Un database di record a lunghezza variabile produrrà un file delimitato, un database di record a lunghezza fissa produrrà un file a larghezza fissa.
Delimitatori
La forma più comune di file delimitato utilizza la virgola come separatore di campo. Questi file sono chiamati file con valori separati da virgola (CSV). La virgola è adatta per dati numerici, ma può causare problemi con il testo. Altri delimitatori includono lo spazio (" ") barra ("|") o il segno del cappello ("^"). Il progettista di file o il programmatore deve trovare un carattere che viene utilizzato raramente nei dati. A volte potrebbe essere necessario utilizzare una combinazione di caratteri.
Campi fissi
Non è sempre possibile garantire che un carattere non venga mai utilizzato nei dati da archiviare nei file, quindi la difficoltà di trovare un delimitatore adatto può rendere preferibili i campi di lunghezza fissa. Questo formato presenta costi generali sia nell'archiviazione che nell'elaborazione, quindi i file delimitati sono più comuni. Un campo di lunghezza fissa deve essere riempito. Le forme più comuni di riempimento sono il riempimento sinistro con zeri per i dati numerici e il riempimento destro con spazi per il testo.
Procedure
Sia che un file sia di larghezza fissa o contenga campi delimitati, i programmi di scrittura e lettura devono seguire le stesse convenzioni. Un programma che riceve un file di larghezza fissa deve prima conoscere la lunghezza e il tipo di dati di ogni archivio. Un programma che riceve file delimitati deve conoscere il delimitatore da cercare.
Record rifiutati
In ogni caso, i programmi di importazione dovrebbero avere procedure di segnalazione delle eccezioni che scrivono i record rifiutati in un file separato. Il motivo più comune per cui un record delimitato viene rifiutato è che il delimitatore appare nei dati, creando colonne aggiuntive. I record a larghezza fissa di solito vengono rifiutati perché troppo lunghi. I record brevi di solito non causano errori. I campi finali non saranno compilati. Se i campi finali sono obbligatori, i record brevi verranno rifiutati.