1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
|
public class intergraph extends JFrame implements ActionListener{
static JButton validerbutton; // Déclaration des boutons
static JCheckBox choix;
static JCheckBox choix2;
static JTextArea jta;
static JScrollPane sp;
static String word;
static String word2;
static File fichier = null;
JPanel pano = new JPanel();
JPanel eastPano = new JPanel();
public intergraph(){ //-------------------INTERFACE GRAPHIQUE-------------------//
setSize(300, 150); // Définit sa taille : 400 pixels de large et 100 pixels de haut
setTitle("Data extraction"); // Définit un titre pour notre fenêtre
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Termine le processus lorsqu'on clique sur la croix rouge
eastPano = new JPanel();
pano = new JPanel();
jta = new JTextArea();
jta.setEditable(false);
choix = new JCheckBox("LIN+"); // Création des boutons
choix2 = new JCheckBox("RFF+");
validerbutton = new JButton("Valider");
pano.setLayout(new GridLayout(4,1));
eastPano.setLayout(new GridBagLayout());
choix.addActionListener(this); // Mise en place de l'écoute des boutons
choix2.addActionListener(this);
validerbutton.addActionListener(this);
pano.add(choix); // Ajout des boutons au JPanel
pano.add(choix2);
pano.add(validerbutton, BorderLayout.SOUTH);
add(pano);
add(eastPano, BorderLayout.EAST);
add(jta, BorderLayout.CENTER);
eastPano.add
(pano, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0,GridBagConstraints.NORTH,GridBagConstraints.NONE,new Insets(0, 0, 0, 0), 0, 0));
ouvertureExplo();
setVisible(true);
jta.setLineWrap(true);
jta.setWrapStyleWord(true);
JScrollPane pane = new JScrollPane
(jta, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
pane.setBounds(10, 10, 300, 100);
getContentPane().add(pane);
}
@Override
public void actionPerformed(ActionEvent e) { //----------------GESTION DES ACTIONS SUR LES BOUTONS------------------//
if (e.getSource()== choix){ // Si action sur "choix"
word = "LIN+"; // Création de la variable "word" ou "LIN+" sera rangé
System.out.println(word);
}
if (e.getSource()== choix2){
word2 = "RFF+";
System.out.println(word2);
}
if (e.getSource()== validerbutton){
String validation = "Validé";
System.out.println("Extraction : "+word+" "+word2);
try {
extractionData();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
public void ouvertureExplo(){
JFileChooser explorateur = new JFileChooser(new File("C:/Users/1cambien/Desktop/Test"));
if (explorateur.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { // si l'instruction showOpenDialog renvoie APPROVE_OPTION
fichier = explorateur.getSelectedFile();
}
}
public void extractionData() throws IOException{ //----------------GESTION DES DONNEES------------------//
int nb = 0;
String pathToFile = ""+fichier;
Path path = Paths.get(pathToFile);
try(BufferedReader reader = Files.newBufferedReader(path)) { // Lecture fichier
for(String line = reader.readLine(); line!=null; ) {
nb++; // Compteur nombre de ligne
if ( nb>1 ); break; // Inutile de lire plus loin
}
}
try(BufferedReader reader = Files.newBufferedReader(path)) {
for(String line = reader.readLine(); line!=null; line = reader.readLine()) {
if ( nb>1 ) { // si ligne > 1 on traite les lignes qui commencent par "word"
if ( line.startsWith(word) ) { // si on commence par "word", on affiche ça
int field = 0;
int composite = 0;
//jta.append("\nPart N° : "+del+" ; ");
extractValue(line,field, composite);
}
}
else {
convertir(line, word, word2 );
}
}
}
}
private static void extractValue(String line, int field, int composite) throws IOException{
int cptplus = 0;
int i = 0;
for ( i = 0 ; i < line.length() ;i++){
if(i == '+'){
cptplus++;
System.out.print(cptplus);
}
if (cptplus == field ){
line.charAt(i);
for (i = 0; i != '+'|| i != ':' || i!= '\'';i++){
System.out.print(field);
}
}
}
}
private static void convertir(String file, String word,String word2) throws IOException {
for(String line : file.split("'") ) { // on découpe par rapport à ', inutile de convertir en ligne pour parser des lignes (comme on a forcément qu'une ligne au plus, il n'y a aucun séparateur de ligne)
if(word!=null){
if ( line.startsWith(word)) { // Par defaut ceci concerne LIN
String del = line.substring(0,18);
jta.append("\nPart N° : "+del+" ; ");
int field = 0;
int composite = 0;
//jta.append("\nPart N° : "+del+" ; ");
extractValue(line,field, composite);
}
}
if(word2!=null){
if ( line.startsWith(word2+"MH")) { // Par defaut ceci concerne RFF
jta.append(line+" ; ");
if(line.startsWith(word)){
jta.append("\n");
}
}
}
if ( line.startsWith(word2+"ADE")) { // Par defaut ceci concerne RFF
jta.append("Supplier code : "+line+"\n");
}
}
}
} |
Partager