segunda-feira, 29 de setembro de 2014

Processamento de texto com JFileHelper

Caros leitores, resolvi escrever esse post porque não achei muito material referente a essa tecnologia. Logo, espero ajudar e contribuir a todas as pessoas que precisam de uma ajuda e não conseguiu encontrar.

A API JFileHelper serve para processamentos de texto e no meu caso foi usado para processar arquivos do formato txt mas, não sei, se é possível processar arquivos em outros formatos. Acredito que não pois, no site da API não diz nada sobre isso.

Nesse post serão usados os exemplos do site da API, a fim de facilitar o processo de aprendizagem. É possível processar texto com diferentes formatos. Quando digo formatos, quero dizer que a API suporta arquivos em que seus campos estão separados por algum caracter (, | . ; -) ou espaçamento.

Não irei abordar aqui todo o poderio que a API possui. Caso queira tal conhecimento, aconselho que visite o site oficial:

http://jfilehelpers.com/

No nosso exemplo, usaremos um arquivo em que seus campos possuem tamanho fixo. Segue abaixo:


Os pontinhos representam a quantidade de posições que cada campo possui. Para tal arquivo de texto, precisaremos construir uma classe com a seguinte estrutura.


Agora vamos às explicações e curiosidades.

@FixedLengthRecord() -> Determina que está classe irá lidar com arquivos de tamanho fixo.

@FieldFixedLength(inteiro) -> Determina que o atributo marcado terá somente o número de posições especificadas na anotação.

@FieldAlign(alignMode=AlignMode.Right) -> Determina que o campo marcado será alinhado à direita quando for retirado do texto. Para mais informações, visitar o seguinte site:

https://github.com/fcoury/jfilehelpers/blob/master/Source/src/org/coury/jfilehelpers/enums/AlignMode.java

@FieldTrim(trimMode=TrimMode.Right) -> Determina que o campo marcado terá seus espaços em branco retirados à direita. Para mais informações, visitar o seguinte site:

https://github.com/fcoury/jfilehelpers/blob/master/Source/src/org/coury/jfilehelpers/enums/TrimMode.java

@FieldConverter(converter = ConverterKind.Date, format = "dd-MM-yyyy") -> Determina que o campo será convertido para a classe especificada no atributo converter e no formato especificado no atributo format. Para mais informações, visitar o seguinte site:

https://github.com/fcoury/jfilehelpers/blob/master/Source/src/org/coury/jfilehelpers/annotations/FieldConverter.java

https://github.com/fcoury/jfilehelpers/blob/master/Source/src/org/coury/jfilehelpers/enums/ConverterKind.java

@FieldOptional -> Determina que o campo será opcional.

@FieldIgnored -> Determina que o atributo marcado será ignorado no processamento do texto.

CURIOSIDADE: A API funciona de forma posicional, ou seja, a ordem dos atributos é importante. No nosso exemplo, possuíamos o atributo name, o qual era precedido pelo atributo custId. No arquivo esta ordem deve ser mantida e vice-versa.

Caro leitor, se você possuir algum conhecimento sobre tal tecnologia ou, notar que cometi algum erro, sendo primário ou não, enriqueça-nos com seu comentário abaixo.

Nenhum comentário: