shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Filtro para TXT - Campos com Comprimento Fixo


From: César A . K . Grossmann
Subject: Re: Filtro para TXT - Campos com Comprimento Fixo
Date: Wed, 10 Sep 2003 13:41:11 -0000
User-agent: eGroups-EW/0.82

--- Em address@hidden, "Gabriel Federizzi"
<gabriel@s...> escreveu
> E se vc usar:   tr -s " " "|"   
> 
> para substituir cada conjunto de espaços por um | ou autra coisa do
genero.
> Assim você tem um separador.

Talvez eu não tenha explicado direito o problema. Suponha que eu tenho
o seguinte banco de dados (vou tentar colocar duas linhas, cada linha
é um registro, ok?):

E1199912100013
S1200001030015

Esquisito? Mas é mais ou menos isto que eu tenho, só que as linhas são
maiores. Examinando a documentação fornecida pelo cliente, eu sei que
o primeiro caracter ("E" na primeira linha, "S" na segunda") é o tipo
de registro, por exemplo, e "E" significa entrada enquanto "S"
significa saída. O segundo caracter ("1" nos dois registros do
exemplo) é um número de série, por exemplo. Os oito caracteres que
seguem são a data do movimento, por exemplo, e os quatro números que
restam são um códgio qualquer. Colocando esta informação na forma de
uma tabelinha, eu teria o seguinte:

Campo  Posicao Comprimento
Tipo         1           1
Serie        2           1
Data         3           8
Codigo      11           4

Este seria o leiaute do arquivo fornecido. Eu não preciso tentar
adivinhar isto, ele é fornecido (embora às vezes o leiaute fornecido
não confira com o leiaute do arquivo, ou seja, está com erros). Só que
nem sempre este leiaute está no formato que eu preciso. Suponhamos no
exemplo acima que o cliente deveria ter entregue um leiaute um pouco
diferente, com o campo Codigo entre Serie e Data, e com um comprimento
de 3 posicoes, e Serie deveria ter duas posições, em vez de uma só. Ou
seja, o leiaute deveria ser:

Campo  Posicao Comprimento
Tipo         1           1
Serie        2           2
Codigo       4           3
Data         7           8

O meu problema é escrever um programa que leia o arquivo original,
faça o desdobramento do mesmo nos campos *fornecidos*, e escreva o
arquivo no formato *desejado*. Um filtro, portanto...

Ficou mais claro?

[]s
--
César A. K. Grossmann
http://www.LinuxByGrossmann.cjb.net/


reply via email to

[Prev in Thread] Current Thread [Next in Thread]