3 dic 2015

Formatos en ficheros de texto

Se trata de dotar de una organización interna a los ficheros de texto.

El caso extremo sería, sin ningún formato, en este caso sería una secuencia de caracteres de principio a fin. Sería el caso, por ejemplo, de muchos libros disponibles en la red. Su utilidad en muchos casos es el análisis de determinados aspectos lingüísticos.

Los principales formatos serían:
Con longitud de campos fija.
Con separador entre campos.
Con un campo por línea.



Con longitud de campos fija o encolumnados.

Cada campo se almacena con una longitud fija para todos los elementos.
Es necesario conocer estos valores de longitudes para poder leer y escribir.
Supongamos que queremos guardar datos de empleados (dni (9 caracteres), edad (2 dígitos), nombre (20 caracteres) y salario mensual (5 dígitos y 2 decimales). Podríamos escribir con un formato  %9s%2d%20s%7.2f\n

Ejemplo:
14567432F32    Ana Martín Pérez 1654.43
 4322224M28Manuel Rodríguez Mar 998.32
  657897H45  Jesús López Castro10234.23   



Con separador entre campos.

Cada campo está separado del siguiente por un separador, que puede ser cualquier carácter, pero que debe ser elegido de forma que no forme parte del contenido de los campos.  Caracteres habituales son el tabulador, la coma (,), el punto y coma (;), los dos puntos (:), los dobles dos puntos (::),  la almohadilla (#),  asterisco (*), etc.
El separador (,) es muy habitual dando nombre a un tipo de ficheros llamado .csv (del inglés comma-separated values).
La mayoría de las hojas de cálculo, los procesadores de textos y los sistemas gestores de bases de datos permiten importar y exportar a este formato.

Ejemplo:

14567432F#32#Ana Martín Pérez#1654.43
4322224M#28#Manuel Rodríguez Mar#998.32
657897H#45#Jesús López Castro#10234.23


Por ejemplo, en Word, nos preguntaría por el tipo de codificación del fichero:



En Excel, nos permitiría separarlo en columnas, indicándole primero la codificación y posteriormente la separación:




En otras hojas de cálculo de forma muy similar, como en Calc de Libre Office:



Con un campo por línea.

Aparece cada campo en una línea.

Ejemplo:
14567432F
32
Ana Martín Pérez
1654.43
4322224M
28
Manuel Rodríguez Mar
998.32
657897H
45
Jesús López Castro
10234.23