Zamiana kolum w pliku z danymi

0

Witam. Mam wielką prośbę ,chciałbym zmienić kolejność kolumn pliku MAGAZYNP.csv który jest ładowany i wyświetlany
Z takiego:
NRKARTY;DATAD;MASA;JEDN;FIRMA;NR_MAG;NR_ODPADU;NR_KLIENTA
Na taki:
NRKARTY;DATAD;MASA;JEDN;FIRMA;NR_KLIENTA;NR_ODPADU;NR_MAG

Czy mógłby mi ktoś powiedzieć która część kodu za to odpowiada ?

Z góry dziękuję za wszelką pomoc .

 
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package kowalski;

import java.awt.event.ActionEvent;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.TreeMap;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.table.AbstractTableModel;


class slownik{
    String opis;
    int NR_KLIENTA;
    String typ;
    String grupa;
    String podgrupa;
    String rodzaj;
}
class dostawcy{
    int NR_ODPADU;
    String nazwa;
    String miejscowosc;
    String ulica;
}
class magazyn{
    int NR_ODPADU;
    int NR_KLIENTA;
    int firma;
    int nr_mag;
    String data;
    String nr_karty;
    String jednostka;
    double masa;
}
class comparatorkod implements Comparator{
private int a;
    public comparatorkod(String s){
        if(s.equals("MW")) a=0;
        else a=1;
}
    public int compare(Object o1, Object o2) {
         switch(a){
           case 0: {
              return MW.MW.get(o1).NR_KLIENTA-MW.MW.get(o2).NR_KLIENTA;
           }
           case 1: {
              return MP.MP.get(o1).NR_KLIENTA-MP.MP.get(o2).NR_KLIENTA;
           }
       }
       return 0;
    }

}
class comparatorfirm implements Comparator{
private int a;
public comparatorfirm(String s){
    if(s.equals("MW")) a=0;
    else a=1;
}
    public int compare(Object o1, Object o2) {
       switch(a){
           case 0: return (MW.MW.get(o1.toString()).firma)-(MW.MW.get(o2.toString()).firma);
           case 1: return (MP.MP.get(o1.toString()).firma)-(MP.MP.get(o2.toString()).firma);
       }
       return 0;
    }
}
class comparatorkart implements Comparator{
private int a;
    comparatorkart(String s) {
    if(s.equals("MW")) a=0;
    else a=1;
    }

    public int compare(Object o1, Object o2) {
        int[] dane = new int[6];
        switch(a){
            case 0:{
                String[] karta=MW.MW.get(o1.toString()).nr_karty.split("/");
                String[] karta2=MW.MW.get(o2.toString()).nr_karty.split("/");
                for(int b=0,c=1,d=0;d<karta.length;b+=2,c+=2,d++){
                    dane[b]=Integer.parseInt(karta[d].replace("W", ""));
                    dane[c]=Integer.parseInt(karta2[d].replace("W", ""));
                }
                if((dane[4]-dane[5])>0) return 1;
                if((dane[4]-dane[5])<0) return -1;
                if((dane[4]-dane[5])==0 && (dane[2]-dane[3])>0) return 1;
                if((dane[4]-dane[5])==0 && (dane[2]-dane[3])<0) return -1;
                if((dane[4]-dane[5])==0 && (dane[2]-dane[3])==0 && (dane[0]-dane[1])>0) return 1;
                if((dane[4]-dane[5])==0 && (dane[2]-dane[3])==0 && (dane[0]-dane[1])<0) return -1;
                if((dane[4]-dane[5])==0 && (dane[2]-dane[3])==0 && (dane[0]-dane[1])==0) return 0;
            }
            case 1:{
                String[] karta=MP.MP.get(o1.toString()).nr_karty.split("/");
                String[] karta2=MP.MP.get(o2.toString()).nr_karty.split("/");
                for(int b=0,c=1,d=0;d<karta.length;b+=2,c+=2,d++){
                    dane[b]=Integer.parseInt(karta[d]);
                    dane[c]=Integer.parseInt(karta2[d]);
                }
                if((dane[4]-dane[5])>0) return 1;
                if((dane[4]-dane[5])<0) return -1;
                if((dane[4]-dane[5])==0 && (dane[2]-dane[3])>0) return 1;
                if((dane[4]-dane[5])==0 && (dane[2]-dane[3])<0) return -1;
                if((dane[4]-dane[5])==0 && (dane[2]-dane[3])==0 && (dane[0]-dane[1])>0) return 1;
                if((dane[4]-dane[5])==0 && (dane[2]-dane[3])==0 && (dane[0]-dane[1])<0) return -1;
                if((dane[4]-dane[5])==0 && (dane[2]-dane[3])==0 && (dane[0]-dane[1])==0) return 0;
                    }

        }

        return 0;
    }

}

class MP{
    public static HashMap<String,magazyn> MP = new HashMap<String,magazyn>();
    public static ArrayList<String> sortkod;
    public static ArrayList<String> sortfirma;
    public static ArrayList<String> sortkarta;
    public static boolean MPok;
    public static TreeMap<Integer,suma> suma=new TreeMap<Integer,suma>();



public static void suma(){
    Iterator ii=sortkod.iterator();
    while(ii.hasNext()){
        magazyn m=(magazyn) MP.get(ii.next().toString());
        suma.put(m.NR_ODPADU,new suma(m.NR_KLIENTA));
    }
    ii=sortkod.iterator();
    while(ii.hasNext()){
        magazyn m=(magazyn) MP.get(ii.next().toString());
        suma.get(m.NR_ODPADU).suma(m.firma, m.masa);
    }
}
    public static void sortkod(){
       sortkod=new ArrayList<String>(MP.keySet());
        Collections.sort(sortkod,new comparatorkod("MP"));
    }
public static void sortfirma(){
       sortfirma=new ArrayList<String>(MP.keySet());
        Collections.sort(sortfirma,new comparatorfirm("MP"));
    }
public static void sortkarta(){
    sortkarta=new ArrayList<String>(MP.keySet());
        Collections.sort(sortkarta,new comparatorkart("MP"));
}
    public static void wczytajMP(String plik){
        try{
        BufferedReader czytnik = new BufferedReader(new FileReader(plik));
            String bufor;
            String[] pola;
            bufor = czytnik.readLine();
            while((bufor = czytnik.readLine()) != null) {
                pola = bufor.split(";");
                magazyn karta = new magazyn();
                karta.nr_karty=pola[0];
                karta.data=pola[1].replaceAll("[^0-9]", "/");
                karta.masa=(Double.parseDouble(pola[2].replaceAll("[^0-9]", ""))/1000);
                karta.jednostka=pola[3];
                karta.firma=Integer.parseInt(pola[4]);
                karta.nr_mag=Integer.parseInt(pola[5].replaceAll("[^0-9]", ""));
                karta.NR_KLIENTA=Integer.parseInt(pola[6].replaceAll("[^0-9]", ""));
                karta.NR_ODPADU=Integer.parseInt(pola[7].replaceAll("[^0-9]", ""));
                MP.put(karta.nr_karty, karta);

            }
            MPok = true;
        } catch (IOException ex) {
            System.out.println("IOException");
        }
    }
}

class suma{
   public double suma[];
   public int NR_KLIENTA;
   public suma(){
       suma=new double[3];
       for(int a=0;a<3;a++) suma[a]=0.0;
   }
   public suma(int NR_KLIENTA){
       this.NR_KLIENTA=NR_KLIENTA;
       suma=new double[3];
       for(int a=0;a<3;a++) suma[a]=0.0;
   }
   public void suma(int firma, double masa){

       suma[firma]+=masa;

   }
}

class MW{
    public static HashMap<String,magazyn> MW = new HashMap<String,magazyn>();
    public static ArrayList sortkod;
    public static ArrayList sortfirma;
    public static ArrayList sortkarta;
    public static boolean MWok;
    public static TreeMap<Integer,suma> suma=new TreeMap<Integer,suma>();

public static void suma(){
    Iterator ii=sortkod.iterator();
    while(ii.hasNext()){
        magazyn m=(magazyn) MW.get(ii.next().toString());
        suma.put(m.NR_ODPADU,new suma(m.NR_KLIENTA));
    }
    ii=sortkod.iterator();
    while(ii.hasNext()){
        magazyn m=(magazyn) MW.get(ii.next().toString());
        suma.get(m.NR_ODPADU).suma(m.firma, m.masa);
    }
}

public static void sortkod(){
       sortkod=new ArrayList<String>(MW.keySet());
        Collections.sort(sortkod,new comparatorkod("MW"));
    }
public static void sortfirma(){
       sortfirma=new ArrayList<String>(MW.keySet());
        Collections.sort(sortfirma,new comparatorfirm("MW"));
    }
public static void sortkarta(){
    sortkarta=new ArrayList<String>(MW.keySet());
        Collections.sort(sortkarta,new comparatorkart("MW"));
}
        public static void wczytajMW(String plik){
            try{
            BufferedReader czytnik = new BufferedReader(new FileReader(plik));
            String bufor;
            String[] pola;
            bufor = czytnik.readLine();
            while((bufor = czytnik.readLine()) != null) {
                pola = bufor.split(";");
                magazyn karta = new magazyn();
                karta.nr_karty=pola[0];
                karta.data=pola[1].replaceAll("[^0-9]", "/");
                karta.masa=(Double.parseDouble(pola[2].replaceAll("[^0-9]", ""))/1000);
                karta.jednostka=pola[3];
                karta.firma=Integer.parseInt(pola[4]);
                karta.NR_ODPADU=Integer.parseInt(pola[5].replaceAll("[^0-9]", ""));
                karta.NR_KLIENTA=Integer.parseInt(pola[6].replaceAll("[^0-9]", ""));
                karta.nr_mag=Integer.parseInt(pola[7].replaceAll("[^0-9]", ""));
                MW.put(karta.nr_karty, karta);

            }
            MWok = true;
        } catch (IOException ex) {
            System.out.println("IOException");
        }
    }
}
class SL{
    public static HashMap<Integer,slownik> SL = new HashMap<Integer,slownik>();
    public static boolean SLok;
        public static void wczytajSL(String plik){
try{
            BufferedReader czytnik = new BufferedReader(new FileReader(plik));
            String bufor;
            String[] pola;
            bufor = czytnik.readLine();
            while((bufor = czytnik.readLine()) != null) {
                pola = bufor.split(";");
                slownik odpad=new slownik();
                odpad.grupa = pola[0];
                odpad.podgrupa = pola[1];
                odpad.rodzaj = pola[2];
                odpad.typ = pola[3];
                odpad.opis= pola[4];
                odpad.NR_KLIENTA = Integer.parseInt(pola[5].replace("�", ""));
                SL.put(odpad.NR_KLIENTA,odpad);
                 }
            SLok = true;
        } catch (IOException ex) {
            System.out.println("IOException");
        }
    }
}
class DY{
    public static HashMap<Integer,dostawcy> DY = new HashMap<Integer,dostawcy>();
    public static boolean DYok;
        public static void wczytajDY(String plik){
try{
            BufferedReader czytnik = new BufferedReader(new FileReader(plik));
            String bufor;
            String[] pola;
            bufor = czytnik.readLine();
            while((bufor = czytnik.readLine()) != null) {
                pola = bufor.split(";");
                dostawcy klient= new dostawcy();
                klient.nazwa = pola[0];
                klient.miejscowosc=pola[1];
                klient.ulica=pola[2];
                klient.NR_ODPADU=Integer.parseInt(pola[3].replace("�", ""));

                DY.put(klient.NR_ODPADU,klient);
                 }
            DYok = true;
        } catch (IOException ex) {
            System.out.println("IOException");
        }
    }
}


class zadanie3i4 extends AbstractTableModel{
    private int magazyn;
    private ArrayList<String> lista;
    public zadanie3i4(int magazyn){
        this.magazyn=magazyn;
        if(magazyn==0)lista=MW.sortkod;
        else lista=MP.sortkod;
    }

    public int getRowCount() {
         switch(magazyn){
            case 0: return MW.suma.size();
            case 1: return MP.suma.size();
        }
        return 0;
    }
@Override
    public String getColumnName(int row){
    switch(row){
        case 0: return "NR_ODPADU";
            case 1: return "NR_KLIENTA";
                case 2: return "FIRMA 0";
                    case 3: return "FIRMA 1";
                        case 4: return "FIRMA 2";
                            
    }
    return "";
}
    public int getColumnCount() {
        return 5;

    }

    public Object getValueAt(int c, int r) {
        String nr_k=(String) lista.get(c);
        magazyn m;
         suma s;
        if(magazyn==0) {
            m=(magazyn)MW.MW.get(nr_k);
            s=(suma)MW.suma.get(m.NR_ODPADU);
        }
        else { m=(magazyn)MP.MP.get(nr_k);
        s=(suma)MP.suma.get(m.NR_ODPADU);
        }

         switch(r){
               case 0: return m.NR_ODPADU;
               case 1: return s.NR_KLIENTA;
               case 2: return s.suma[0];
               case 3: return s.suma[1];
               case 4: return s.suma[2];
               
            }
        return "";
    }

}
class zadanie1i2 extends AbstractTableModel{
    private int magazyn;
    private int sortowanie;
    private ArrayList<String> lista;
    public zadanie1i2(int magazyn,int sortowanie){
        this.magazyn=magazyn;
        this.sortowanie=sortowanie;
        lista=null;
        if(magazyn==0){
            switch(sortowanie){
                case 0: lista=MW.sortkod; break;
                case 1: lista=MW.sortfirma; break;
                case 2: lista=MW.sortkarta; break;
            }
        }else {
            switch(sortowanie){
                case 0: lista=MP.sortkod; break;
                case 1: lista=MP.sortfirma; break;
                case 2: lista=MP.sortkarta; break;
            }
        }
    }
    public int getRowCount() {

        return lista.size();
    }

    public int getColumnCount() {
         switch(magazyn){
            case 0: return 8;
            case 1: return 10;
        }
        return 0;
    }
    @Override
    public String getColumnName(int row){
        switch(magazyn){
            case 0: {switch(row){
                    case 0: return "NR_KARTY";
                    case 1: return "DATAW";
                    case 2: return "MASA";
                    case 3: return "KOD";
                    case 4: return "FIRMA";
                    case 5: return "NAZWA_SKROCONA";
                    case 6: return "TYP";
                    case 7: return "OPIS";
            }break;}
             case 1:{ switch(row){
                case 0: return "NR_KARTY";
                    case 1: return "DATAD";
                    case 2: return "MASA";
                    case 3: return "KOD";
                    case 4: return "JEDN";
                    case 5: return "FIRMA";
                    case 6: return "TYP";
                    case 7: return "NAZWA_SKR";
                    case 8: return "NR_MAG";
                    case 9: return "OPIS";
            }break;}
        }

        return "";
    }
    public Object getValueAt(int c, int r) {
        String nr_k=lista.get(c);
        magazyn m;
        if(magazyn==0)m=(magazyn) MW.MW.get(nr_k);
        else      m=(magazyn) MP.MP.get(nr_k);
                slownik s=(slownik) SL.SL.get(m.NR_KLIENTA);
                dostawcy d=(dostawcy) DY.DY.get(m.NR_ODPADU);
        switch(magazyn){
            case 0:   {
                switch(r){
                    case 0: return nr_k;
                    case 1: return m.data;
                    case 2: return m.masa;
                    case 3: return m.NR_KLIENTA;
                    case 4: return m.firma;
                    case 5: if(d!=null) return d.nazwa; break;
                    case 6: return s.typ;
                    case 7: return s.opis;
            }
                break;}
             case 1:{ switch(r){
                case 0: return nr_k;
                    case 1: return m.data;
                    case 2: return m.masa;
                    case 3: return m.NR_KLIENTA;
                    case 4: return m.jednostka;
                    case 5: return m.firma;
                    case 6: return s.typ;
                    case 7: if(d!=null) return d.nazwa; break;
                    case 8: return m.nr_mag;
                    case 9: return s.opis;
            }
             break;}

        }
        return "";
    }

}
class panel extends JPanel{

}
public class kowalski extends JFrame{

    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.ButtonGroup buttonGroup2;
    private javax.swing.JButton jButton1;
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JRadioButton jRadioButton1;
    private javax.swing.JRadioButton jRadioButton2;
    private javax.swing.JRadioButton jRadioButton3;
    private javax.swing.JRadioButton jRadioButton4;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTable jTable1;
    private JPanel jPanel2;


    public kowalski(){
         MP.wczytajMP("MAGAZYNP.csv");
        MW.wczytajMW("MAGAZYNW.csv");
        DY.wczytajDY("DOSTAWCY.csv");
        SL.wczytajSL("SLOWNIK.csv");
        MW.sortfirma();
        MW.sortkod();
        MW.sortkarta();
        MW.suma();
        MP.sortkod();
        MP.sortfirma();
        MP.sortkarta();
        MP.suma();
init();
    }

    private void init(){
        buttonGroup1 = new javax.swing.ButtonGroup();
        jPanel1 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jRadioButton1 = new javax.swing.JRadioButton();
        jRadioButton2 = new javax.swing.JRadioButton();
        jComboBox1 = new javax.swing.JComboBox();

        jScrollPane2 = new javax.swing.JScrollPane();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jRadioButton3 = new javax.swing.JRadioButton();
        jRadioButton4 = new javax.swing.JRadioButton();
        jButton1 = new javax.swing.JButton();
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setSize(800, 500);
        setLocationRelativeTo(null);
        setVisible(true);
        setResizable(false);
        setTitle("Kowalski");
        add(jPanel1);
        add(jPanel2);
        jPanel1.setSize(100, 500);

        jPanel2.setSize(700, 500);

        jPanel2.add(jScrollPane1);
        jPanel2.add(jTable1);
        jTable1.setAlignmentX(RIGHT_ALIGNMENT);
        jTable1.setModel(new zadanie1i2(0, 0));
        jScrollPane1.setViewportView(jTable1);
        jScrollPane1.setVisible(true);
        jTable1.setVisible(true);
        jPanel1.add(jLabel1);
        jPanel1.add(jRadioButton1);
        jPanel1.add(jRadioButton2);
        jRadioButton1.setSelected(true);
        jPanel1.add(new JLabel("SORTUJ:"));
        jPanel1.add(jComboBox1);
        jPanel1.add(jLabel2);
        jPanel1.add(jRadioButton3);
        jPanel1.add(jRadioButton4);
        

        
        

        jPanel1.add(jButton1);

        buttonGroup1.add(jRadioButton1);
        jRadioButton1.setText("MagazynW");
        jRadioButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton1ActionPerformed(evt);
            }
        });

        buttonGroup1.add(jRadioButton2);
        jRadioButton2.setText("MagazynP");
        jRadioButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton2ActionPerformed(evt);
            }
        });

        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "KOD", "FIRMA", "NRKARTY" }));
        jComboBox1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboBox1ActionPerformed(evt);
            }

            private void jComboBox1ActionPerformed(ActionEvent evt) {
                if(jRadioButton1.isSelected()) jTable1.setModel(new zadanie1i2(0, jComboBox1.getSelectedIndex()));
                else jTable1.setModel(new zadanie1i2(1, jComboBox1.getSelectedIndex()));
            }
        });
        String[] model=new String[28];
        String[] model2=new String[12];
        for(int a=0;a<28;){
            model[a]=String.valueOf(++a);
        }
        for(int a=0;a<12;){
            model2[a]=String.valueOf(++a);
        }






        jLabel1.setText("Zadanie 1 i 2");

        jLabel2.setText("Zadanie 3 i 4");

        buttonGroup1.add(jRadioButton3);
        jRadioButton3.setText("Magazyn W");
        jRadioButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton3ActionPerformed(evt);
            }
        });

        buttonGroup1.add(jRadioButton4);
        jRadioButton4.setText("Magazyn P");
        jRadioButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton4ActionPerformed(evt);
            }
        });

        jButton1.setText("ZESTAW c");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                
            }
        });


    }

    private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        jTable1.setModel(new zadanie1i2(0, jComboBox1.getSelectedIndex()));
    }

    private void jRadioButton2ActionPerformed(java.awt.event.ActionEvent evt) {
       jTable1.setModel(new zadanie1i2(1, jComboBox1.getSelectedIndex()));
    }

    private void jRadioButton3ActionPerformed(java.awt.event.ActionEvent evt) {
        jTable1.setModel(new zadanie3i4(0));
    }

    private void jRadioButton4ActionPerformed(java.awt.event.ActionEvent evt) {
        jTable1.setModel(new zadanie3i4(1));
    }



    public static void main(String[] args) {

       
       new kowalski();


    }

}
0

Metody wcztajXX odczytują pliki i z kazdej linii tworzą obiekty. To jak zapiszesz sobie obiekt to już twoja sprawa.

0

A mógłbyś wskazać fragment który jest za to odpowiedzialny ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1