2015-03-30 50 views
0

我設法提取我正在查找的數字,但(可能是因爲我從大學以來沒有使用過Java)我無法添加數字來獲得「總數「並計入EDI文件。輸出結果顯示我將每個發票總額都作爲一個double來收集,但是當我嘗試添加它們時,它會在每次while循環運行時重置數字,如果將它放在循環之外,則它不會識別我的變量。試圖解析EDI文件並總計發票

這裏是我的代碼

try (BufferedReader br = new BufferedReader(new FileReader("\\Edi810o311214.dat"))) 
{ 
    String line; 
    while ((line = br.readLine())!= null) 
    { 
    //eliminates lines that do not begin with "total" 
    String lineEval = line.substring(0,5); 
    if (lineEval.equals("Total")) 
    { 
     //extracts total invoice field from line 
     String totalValue = line.substring(12,26); 
     double totalValueNum = Double.parseDouble(totalValue); 

     //shows output for testing purposes (will remove) 
     System.out.println(totalValueNum);  
     double total = 0; 
     int counter = 0; 

     total += totalValueNum; 
     counter++; 


    } 
+0

你的意思是「不符合總數的線條」?如果您正在解析EDI並想要累積所有交換的總計(假設文件中有多個810),則您需要在TDS部分中獲取該值。這已經是一個翻譯文件(意味着X12到另一種格式)? – Andrew 2015-03-30 17:46:07

回答

0

它會站在原因,我想看看這幾個小時,然後在一分鐘內回答我的問題或兩個終於放棄並張貼

try (BufferedReader br = new BufferedReader(new FileReader("\\Edi810o311214.dat"))) 
{ 
    int counter = 0; 
    double total = 0; 
    String line; 
    while ((line = br.readLine())!= null) 

    { 
    //eliminates lines that do not begin with "total" 
    String lineEval = line.substring(0,5); 
    if (lineEval.equals("Total")) 

    { 
     counter++; 
     //extracts total invoice field from line 
     String totalValue = line.substring(12,26); 
     double totalValueNum = Double.parseDouble(totalValue); 
     total += totalValueNum; 
     //shows output for testing purposes (will remove) 
     System.out.println(totalValueNum);  






    } 

    } 
    System.out.println(counter); 
    System.out.println(total); 

    } 

}