Caso práctico
Ana está asustada, le acaban de asignar una nueva tarea y le acaban de enviar por correo el formato del archivo que tiene que procesar. El archivo tiene un formato concreto, un tanto extraño. Primero tiene una cabecera con información general del pedido, y luego tiene los artículos del pedido, cada uno en una línea diferente. ¿Podrá realizar la tarea encomendada?. En este momento lo que le preocupa es cómo evaluar las líneas del pedido, mas adelante se encargará de estudiar cómo se puede leer el contenido del fichero y procesarlo.
La empresa recibe los pedidos siguiendo un modelo normalizado. En realidad se trata de una pequeña aplicación web que al rellenar un formulario, envía un correo electrónico con la información siguiendo una estructura fija. A continuación puedes ver un ejemplo:
## PEDIDO ##
Número de pedido: { 20304 }
Cliente: { Muebles Bonitos S.A. }
Código del cliente: { 00293 }
Dirección de factura: { C/ De en frente, 11 }
} Dirección de entrega: { C/ De al lado, 22 }
Nombre del contacto: { Elias }
Teléfono del contacto: { 987654321 }
Correo electrónico del contacto: { mail@mail1234.com }
Fecha preferente de entrega: { 19/11/2012 }
Forma de pago: { Transferencia }
## ARTICULOS ##
{ Código Artículo | Descripción | Cantidad }
{ 0001231 | Tuercas tipo 1 | 200 }
{ 0001200 | Tornillos tipo 1 | 200 }
{ 0002200 | Arandelas tipo 2 | 200 }
## FIN ARTICULOS ##
## FIN PEDIDO ##
Como puedes observar, el pedido tiene una estructura fija, y solamente cambian los datos que están entre llaves. El resto del texto es fijo, dado que como se ha dicho antes, el pedido lo genera una aplicación web, y lo envía por correo electrónico al cliente.
Cuando un cliente solicita un pedido a esta empresa, no puede poner en ningún campo los símbolos "{", "}", ni "|", porque entonces entraría en conflicto con el formato enviado por correo y daría problemas, así que se optó por impedir que el cliente pudiera poner dichos caracteres extraños. Esto garantiza que cada campo del pedido se va a poder leer adecuadamente.
Lo más conflictivo, es la sección de artículos del pedido, en su primera parte, tiene una especie de cabecera que ayuda a identificar que es cada una de las columnas. Y después, tiene tantas líneas como artículos tenga el pedido, si tiene 100 artículos, tendrán 100 líneas que incluirán: código del artículo, descripción del artículo y la cantidad.