Archivos delimitados (CSV) vs ancho fijo: estructura, delimitadores, padding y rechazo de registros
Cada línea en un archivo representa una fila de datos, pero esos datos suelen dividirse en campos (columnas). Dos métodos estándar delimitan campos. Uno: campos de longitud fija (y por tanto registros de longitud fija). Otro: campos de longitud variable con registros de longitud variable. Los campos variables deben separarse por un símbolo: el delimitador. Una base de datos de registros variables genera un archivo delimitado; una de registros fijos genera un archivo de ancho fijo.
Delimitadores
La forma más común de archivo delimitado usa la coma como separador de campos. Se llaman archivos CSV (comma separated values). La coma va bien para datos numéricos, pero puede causar problemas con texto. Otros delimitadores: espacio (« «), barra vertical («|»), acento circunflejo («^»). El diseñador/programador debe hallar un carácter que rara vez aparezca en los datos. A veces hace falta una combinación de caracteres.
Campos fijos
No siempre es posible garantizar que un carácter nunca aparezca en los datos a guardar, así que la dificultad de hallar un delimitador adecuado puede hacer preferibles los campos de longitud fija. Este formato tiene sobrecarga en almacenamiento y procesamiento, por lo que los archivos delimitados son más comunes. Un campo de longitud fija debe rellenarse (padding). Lo habitual: relleno a la izquierda con ceros para numéricos, relleno a la derecha con espacios para texto.
Procedimientos
Sea archivo de ancho fijo o delimitado, los programas de escritura y lectura deben seguir las mismas convenciones. Un programa que recibe ancho fijo debe conocer primero la longitud y tipo de dato de cada campo. Uno que recibe delimitados debe saber qué delimitador buscar.
Registros rechazados
En ambos casos, los programas de importación deben tener procedimientos de reporte de excepciones que escriban los registros rechazados en un archivo aparte. La causa más común de rechazo en delimitados: el delimitador aparece en los datos, creando columnas extra. En ancho fijo: registros demasiado largos. Los cortos usually no dan error; los campos finales quedan vacíos. Si los campos finales son obligatorios, los registros cortos se rechazan.
