Pessoal estou com um problema em relação a manipulação de arquivos do tipo txt. Estou com um problema no meu código de leitura, que consegui resolver parcialmente o problema. Abaixo segue os caracteres que irão conter no meu arquivo .txt
T0129301;3 EMME S.R.L -VIA BROSETA 64/B
T0132601;A. J. LIMA AGROINDUSTRIAL LTD -FAZENDA BOA VISTA L
C0025601;A.C. AGROMERCANTIL LTDA -FAZ SANTA ROSALIA S
C0025602;A.C. AGROMERCANTIL LTDA -FAZ SANTA LUCIA S/N
T0188601;A.G. DO BRASIL LTDA -AV. JANDIRA, 295 -
T0119201;ABADIA PERES DE ARAUJO SILVA -FAZENDA DOS BARROS
T0099801;ABDIAS CARLOS DE ARAUJO -FAZENDA PEROBAS
C0018101;ABEL NUNES DA CUNHA -FAZENDA JUNKA - MAC
T0184801;ABEL REBOLO GARCIA -FAZENDA OSVALDO CRU
T0131701;ABNER GOMES ROMAO FILHO -FAZENDA PONTE VELHA
No meu código eu consegui separar os tokens pelos delimitadores “;” e “-”, só que em alguns casos o endereço que seria o ultimo elemento da minha linha
esta sendo separado tbm. Pensei em talvez separar da forma que eu pegasse ate tal numero da coluna o primeiro elemento, depois do elemento seguinte da coluna ate o final do outro elemento, e depois o ultimo elemento da minha linha. Esta captura estaria sendo feita pela numeração da coluna, só que não sei como fazer pra conseguir isso.
O meu código que eu implementei com a sepação dos tokens segue abaixo:
[code]public void actionPerformed(ActionEvent e) {
String caminho;
fc = new JFileChooser();
defineFiltro();
if (e.getSource() == importarBotao) {
int returnVal = fc.showOpenDialog(Miscelania.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
log.append("Importando arquivo: " + file.getName() + "." + newline);
if(!file.exists())
{
System.out.println("arquivo existe");
}
try
{
BufferedReader in = new BufferedReader( new FileReader(file),1*10*10);
String linha;
int linecount = 0;
while((linha = in.readLine())!= null)
{
System.out.println("Linha do arquivo nr: "+ ++linecount);
StringTokenizer tokencodigo = new StringTokenizer(linha, ";");
int contToken = 1;
String primeiroElemento;
String segundoElemento;
while(tokencodigo.hasMoreTokens())
{
String palavra;
palavra = tokencodigo.nextToken();
if(contToken == 1 )
{
primeiroElemento = palavra;
System.out.println("Codigo Produtor: "+primeiroElemento);
}
else
{
segundoElemento = palavra;
separaToken(segundoElemento);
}
contToken ++;
}
}
}
catch(Exception erro)
{
JOptionPane.showMessageDialog(null,"erro: "+erro);
}
} else {
log.append("Processo cancelado pelo usuário:" + newline);
}
log.setCaretPosition(log.getDocument().getLength());
} else if (e.getSource() == exportarBotao) {
int returnVal = fc.showSaveDialog(Miscelania.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
log.append("Exportando arquivo: " + file.getName() + "." + newline);
} else {
log.append("Processo cancelado pelo usuário:" + newline);
}
log.setCaretPosition(log.getDocument().getLength());
}
}
public void separaToken(String segundoElemento){
String linha = segundoElemento;
StringTokenizer tokenNomeProdutor = new StringTokenizer(linha, “-”);
int contToken = 1;
String primeiroElemento;
while(tokenNomeProdutor.hasMoreTokens())
{
String palavra;
palavra = tokenNomeProdutor.nextToken();
if(contToken == 1 )
{
primeiroElemento = palavra;
System.out.println("Nome Produtor: "+primeiroElemento);
}
else
{
if(contToken == 2)
{
segundoElemento = palavra;
System.out.println("Nome Fazenda: "+segundoElemento);
}
}
contToken ++;
}
}[/code]