Muchas veces es común que algunos programas o aplicaciones
requieran información que puede ser actualizada a través de archivo en formato
txt, normalmente se les llama layout, estos archivo puedes ser fácilmente
generados con Excel, simplemente con las opciones de guardado.
Como comentaba estos archivos llamados Layout, son archivo
en con formato txt, que contiene información para alimentar la base de datos de
alguna aplicación o programas, normalmente son campos de alguna tabla de la
base de datos de ese programa. Entonces en este pequeño artículo veremos cómo
hacer un archivo txt o layout.
Los Layout necesitan algún formato especial
para que puedan ser leídos por la aplicación o programa en donde se subirán estos
archivos, a veces no es necesario que venga la descripción del campo y solo se
requiera directamente el dato de cada campo, ahora bien esos campos necesitan que en el formato sean separados por algún carácter en específico,
pueden ser separados por Tabulaciones, por espacio, por coma (,), punto y coma
(;), por pipes (|) por mencionar algunos que son los más utilizados.
Para hacer un archivo layout debes de conocer los datos o
campos con información específica que se requieren para poder armar un Layout,
una vez conocemos esto estaremos listo para diseñar el archivo. Conocer las
datos significa que debo saber qué tipo de dato capturar en cada campo, ya sea
que el campo me pida una fecha y por lo tanto debo procurar que ese campo lleve
datos validos como fecha, también puede haber algún campo en el cual me
solicite importes o números esos números podrían ser de tipo entero o con
decimal, también puede haber campos que me solicite una cadena de texto
con un determinado ancho, por ejemplo que debe contener 30 caracteres y no más,
para conocer bien el tipo de datos normalmente lo programas proporcionan guías
de como armar su layout.
Entendiendo esto, veamos un ejemplo de cómo se hace una
archivo txt de texto plano.
En la siguiente imagen se muestra los campos que conformaran
el layout para crear el archivo txt de ejemplo:
En la figura vemos el nombre de los campos y los datos de
cada campo, si nuestro archivo nos lo pidieran sin el cabecero, es decir sin el
nombre de los campos en ese caso solo proporcionaríamos los datos del campo en
el orden especificado.
Si quisiéramos guardar el archivo txt delimitado por
tabulaciones lo haríamos de la siguiente manera:
Nos vamos a la opción de guardar como, estando ahí buscamos
el tipo de archivo que dice “Texto (Delimitado por tabulaciones) (*.txt)” y le
damos guardar con el nombre y en el directorio que elijamos según las
especificaciones de layout.
Si quisiéramos guardar el archivo txt delimitado por
espacios lo haríamos de la siguiente manera:
Nos
vamos a la opción de guardar como, estando ahí buscamos el tipo de archivo que
dice “Texto con formato (Delimitado por espacios) (*.prn)” y le damos guardar
con el nombre y en el directorio que elijamos según las especificaciones de
layout, y en este la extencion del archivo se guarda con *.prn.
Notaran
que al guardar su archivo *.txt o *.prn les aparecerá el siguiente mensaje, el
cual debemos seleccionar la opción no, ya que si decimos que si todo nuestro
archivo de Excel se volverá de tipo texto, entonces como el archivo de Excel nos
sirve como plantilla para hacer nuestro layout debemos seleccionar que
no, y luego aparecerá otro cuadro de dialogo pidiéndonos guardar el archivo y
le damos cancelar.
Ahora bien:
Si quisiéramos guardar el archivo txt delimitado por “,” “;”
o por “|” tendríamos que hacer una operación adicional, y para realizarla
podemos utilizar la Función Concatenar
de Excel que vimos en el artículo Funciones
de Texto En Excel.
Con la función concatenar
lo que haremos es ir insertando entre cada dato de los campos el carácter con
el que queremos se delimiten lo datos, por ejemplo si quisiéramos que fueran
con Pipes (|) en una columna a lado pondríamos una fórmula como la siguiente
que se hace con la función concatenar: =CONCATENAR("|",A2,"|",B2,"|",C2,"|",D2,"|",E2,"|",F2,"|",G2,"|")
el resultado que daría como sigue:
Cuando nos piden el layout de esta forma, generalmente nunca
se incluye el encabezado de los campos o los nombres de los campos.
Ok,
una vez que tenemos hecha la fórmula con el resultado deseado, ahora como guardaríamos
el archivo txt, ya que en este caso solo nos interesa el resultado de la fórmula
que aparece en la columna H, por lo tanto no lo podemos hacer en las 2 formas que
mencionamos primero, bueno, lo mas sencillo es copiar el resultado de la columna H
de cada una de las filas y luego abrir nuestro programo bloc de notas y pegar
los datos ahí.
Estando en el bloc de notas
lo guardamos con el nombre que deseemos o según las especificaciones del
Layout, y con eso tendríamos nuestro archivo txt listo para subirlo al programa
o aplicación.
De esta misma forma lo
podríamos hacer si el caracter fuera un “,” “;” seria el mismo paso y en la
formula de concatenado utilizaríamos el carácter deseado o especificado por el
layout.
Bueno hasta aquí este sencillo
tutorial acerca de como Crear archivos de texto o Layout, espero les sea de
utilidad para aquellos que desconocían como hacerlo.
Saludos cordiales.
JASR
*****Tranquilos que todo es
correcto.
muy buena información sobre los archivos .txt.....
ResponderBorrarExelente y muy util
Hola Manuel
BorrarQue bueno saber que te ha servido.
Gracias por tu visita.
Saludos cordiales.
JASR
puedo generar el layout pero por ejemplo el programa que leera el layout me dice que el campo donde va el nombre de la persona tiene como maximo 20 caracteres y que si el nombre es menor a 20 caracteres llene con espacios. ejemplo. si pongo juan perez estoy usando 10 espacios y los otros 10 tienen que llenarse con espacios en el layout. como hago eso?
ResponderBorrarHola Mario.
BorrarEso lo podrías hacer con una formula, que valide el ancho del dato escrito dentro de un campo con anchos fijos. Pudiera utilizar la funcion "largo" para identificar el ancho del dato y luego restarlo del ancho fijo del campo. Y luego llenar el resto con espacios. Podrías definir celdas con espacios de 1, 2, 3, 3 etc. espacios y según la diferencia en caracteres concatenar la celda con el espacio que faltare. Es una idea de muchas por decirlo así
y como seria la funcion? no se casi nada de excel :S
ResponderBorrar