[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Filtro para TXT - Campos com Comprimento Fixo
From: |
César A . K . Grossmann |
Subject: |
Filtro para TXT - Campos com Comprimento Fixo |
Date: |
Mon, 08 Sep 2003 14:17:55 -0000 |
User-agent: |
eGroups-EW/0.82 |
Grande ALL!
Tenho um pequeno desafio de programação, e trata-se de outro filtro.
Suponha que você tenha um sistema que importe dados no formato TXT, um
registro por linha, campos com largura fixa, com um certo leiaute,
algo tipo:
Campo Posicao Inicial Posicao Final
Nome 1 35
Ender 36 70
Bairro 71 90
Cidade 91 120
CEP 121 128
UF 129 130
Suponha que você receba este arquivo de várias pessoas diferentes, só
que cada uma faz uma exportação do sistema deles, seguindo um leiaute
próprio, como, por exemplo:
Campo Posicao Inicial Posicao Final
Codigo 1 10
Nome 11 50
Ender 51 70
Bairro 71 90
Cidade 91 110
CEP 111 118
UF 119 120
Tem um campo a mais, e os outros campos tem alinhamento e largura
diferentes.
Não fica difícil, com a descrição acima, escrever um filtro para esta
importação, mas para fazer a importação de outros arquivos, com
diferentes formatos, seria necessário escrever novos filtros.
O ideal, a meu ver, seria se houvesse um filtro mais genérico, que
recebesse o leiaute da entrada e o leiaute de saída, e fizesse a
conversão.
Alguém sabe de alguma coisa no gênero? Pensei no AWK ou no SED, mas os
dois tem uma desvantagem: para trabalhar com registros em uma linha,
com comprimento fixo, não é exatamente direto... O AWK pede um
separador de campos (existe uma extensão no GNU AWK que possibilitaria
isto, mas a página do manual não é muito animadora sobre isto:
http://www.gnu.org/manual/gawk-3.1.1/html_node/Constant-Size.html#Constant%=
20Size
"Note: This program uses a number of awk features that haven't been
introduced yet").
No manual do SED eu não vi nada que possa me servir...
O Perl talvez seja de ajuda, mas eu teria que aprender aquela pérola...
Alguém tem alguma sugestão?
[]s
--
César A. K. Grossmann
http://www.LinuxByGrossmann.cjb.net/
- Filtro para TXT - Campos com Comprimento Fixo,
César A . K . Grossmann <=