Somar valores retirados de um arquivo txt

4 respostas
J

Boa tarde!!!

Fiz o código abaixo e ele me retorna o seguinte.

426
3022830
20964
2642
333329
2003
401
2507707
15491
1870

Preciso somar estes valores, mas não estou conseguindo.

Alguem pode me ajudar???

import java.io.*;/*classe para entrada e saída de dados*/
import java.util.*; /*comparar dados*/
import java.io.IOException;
import java.io.BufferedReader;
import javax.swing.JOptionPane;

/**
 *
 * @author Junior
 */
public class avproject {

    public static void main(String[] args) {

        BufferedReader inReader = null;
        PrintWriter outWriter = null;
        String line;
        String corigem;


        corigem = JOptionPane.showInputDialog("Digite a Origem do Arquivo: ");
        try {
        inReader = new BufferedReader(
                   new FileReader(corigem));/*arquivo de origem*/
                   } catch( FileNotFoundException e ) {
                     if (corigem != null){
                     System.err.println(corigem);/*destino e muda o nome do arquivo*/
                     System.exit(1);
                     JOptionPane.showMessageDialog(null,"Não Foi Possível Abrir o Arquivo: " + corigem);
                     }
                   }

        try{
        while((line = inReader.readLine())!= null) {
             StringTokenizer st = new StringTokenizer(line);

             String Tipo = line.substring(0,2);

             if (Tipo.equals("01")){

             String Cnpj = line.substring(2,16);
             String Iest = line.substring(16,30);
             String Cnae = line.substring(30,37);
             String Razao = line.substring(37,72);
             String Munic = line.substring(72,102);
             String Uf = line.substring(102,104);
             String DtIni = line.substring(104,112);
             String DtFin = line.substring(112,120);
             String Ender = line.substring(120,154);
             String Num = line.substring(154,159);
             String Compl = line.substring(159,181);
             String Bairro = line.substring(181,196);
             String Cep = line.substring(196,204);
             String Ncont = line.substring(204,232);
             String FaxNum = line.substring(232,242);
             String TelNum = line.substring(242,254);
             String Email = line.substring(254,304);
             String EndSite = line.substring(304,344);

             //System.out.println(Tipo+Cnpj+Iest+Cnae+Razao+Munic+Uf+DtIni+DtFin+Ender+Num+Compl+Bairro+Cep+Ncont+FaxNum+TelNum+Email+EndSite);
             }

             if (Tipo.equals("02")){

             String Cnpj = line.substring(2,16);
             String Iest = line.substring(16,30);
             String Uf = line.substring(30,32);
             String DtEmiRec = line.substring(32,40);
             String Serie = line.substring(40,42);
             String NumNf = line.substring(42,48);
             String Cfop = line.substring(48,52);
             String CodCompl = line.substring(52,54);
             String Quant = line.substring(54,67);
             String VlTotBc = line.substring(67,80);
             String VlConfBc = line.substring(80,93);
             String CodMerc = line.substring(93,107);



             int  vltotbc = Integer.parseInt(VlTotBc);


             System.out.println(vltotbc);
             }

             /*if (Serie.equals("SK")){


             float Vltot = Float.parseFloat(VlTotBc);

             float vltotbc = (Vltot / 100);

             


             DecimalFormat df = new DecimalFormat("0.00");//Exibe float com duas casas decimais
             System.out.println(df.format(vltotbc));
             }*/


             //if (Serie.equals("SK")){
             //System.out.println(Tipo+Cnpj+Iest+Uf+DtEmiRec+Serie+NumNf+Cfop+CodCompl+Quant+VlTotBc+VlConfBc+CodMerc);
             
                    
             

             /*if (Tipo.equals("03")){

             String Mam = line.substring(2,3);
             String DtEmi = line.substring(3,11);
             String NumMaq = line.substring(11,14);
             String Quant = line.substring(14,27);
             String VlTotBc = line.substring(27,40);
             String VlConfBc = line.substring(40,53);
             String CodMerc = line.substring(53,67);

             System.out.println(Tipo+Mam+DtEmi+NumMaq+Quant+VlTotBc+VlConfBc+CodMerc);

             }

             if (Tipo.equals("04")){

             String CodMerc = line.substring(2,16);
             String DescMerc = line.substring(16,91);
             String UniMed = line.substring(91,94);
 
             System.out.println(Tipo+CodMerc+DescMerc+UniMed);

             }

             if (Tipo.equals("05")){

             String CodMerc = line.substring(2,16);
             String DtIni = line.substring(16,24);
             String DtFin = line.substring(24,32);
             String AliqIcms = line.substring(32,36);

             System.out.println(Tipo+CodMerc+DtIni+DtFin+AliqIcms);

             }

             if (Tipo.equals("06")){

             String TotTipo = line.substring(2,4);
             String TotReg = line.substring(4,18);

             System.out.println(Tipo+TotTipo+TotReg);

             }*/


             //System.out.println(Tipo+Cnpj+Iest+Cnae+Razao+Munic+Uf+DtIni+DtFin+Ender+Num+Compl+Bairro+Cep+Ncont+FaxNum+TelNum+Email+EndSite);


             //System.out.println(line);

             }
        

        JOptionPane.showMessageDialog(null,"Arquivo Convertido Com Sucesso!!!");

inReader.close();
//outWriter.close();
        }
catch (IOException e){
System.err.println(e.getMessage());

}
    }
}

4 Respostas

A

pra somar você tem que converter os valores:

int valor = Integer.parseInt(valorEmString);
J

Eu fiz isso, só que não dá certo com nenhum método, for, if, while…
Mesmo assim Obrigado.

B

Boa tarde jrvanhalen,

Como assim não dá certo com nenhum método?

Poderia postar como tentou fazer?

Att,

Guilherme Bernert

f4binho

Cara tudo que vc pega do txt é transformado em String

Então para cada atributo q criar vc tem q fazer o parser

exemplo:

Integer Cnpj = Integer.parseInt(line.substring(2,16));
Integer Iest = Integer.parseInt(line.substring(16,30));

// Agora sim ^_^

System.out.println(Cnpj+Iest);

:lol:

Criado 9 de junho de 2010
Ultima resposta 10 de jun. de 2010
Respostas 4
Participantes 4