DESIGN\n
blabla\n
DESIGN blabla
Display Qality type
begin
DESIGN PBIT
DSCP&PBIT&1 ENB
PART1 SBIT
Qlt=PBIT/10 CLK
PART2 SBIT
Qlt=PBIT/20 CLK
DESIGN PBIT
DSCP&PBIT&3 ENB
PART1 SBIT
Qlt=PBIT/40 FAIL
PART2 SBIT
Qlt=PBIT/50 ACT
END
Pattern ss[] = {
Pattern.compile("([a-z]+)((DESIGN))"),
Pattern.compile("([a-z]+)((PART1))") ,
Pattern.compile("([a-z]+)((PART2))") ,
};
Scanner sc = new Scanner(new File("Test.txt")"));
String line;
int i;
while (sc.hasNextLine()) {
line = sc.nextLine();
i = 0;
Matcher match = ss[i].matcher(line);
}
}
sc.close();
}
}
Qality= DSCP&PBIT&1 % Qality= PART1 =Qlt=PBIT/10 % Qality= PART2 =Qlt=PBIT/20 % Qality= DSCP&PBIT&1 && Qlt=PBIT/10 % Qality= DSCP&PBIT&3 % Qality= PART1 =Qlt=PBIT/40 % Qality= PART2 =Qlt=PBIT/50 % Qality= DSCP&PBIT&3 && Qlt=PBIT/40 %
try (Scanner sc = new Scanner(new File("C:/test.txt"))) { sc.useDelimiter("DESIGN"); String p = "\\s+(\\S+)"; Pattern pattern = Pattern.compile(p+p+p+p+p+p+p+p+p+p+p); while (sc.hasNext()) { Matcher matcher = pattern.matcher(sc.next()); if (matcher.find()) { System.out.println("Qality= " + matcher.group(2) + " %"); System.out.println("Qality= " + matcher.group(4) + " =" + matcher.group(6) + " %"); System.out.println("Qality= " + matcher.group(8) + " =" + matcher.group(10) + " %"); System.out.println("Qality= " + matcher.group(2) + " && " + matcher.group(6) + " %"); System.out.println(); } } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Display Qality type
begin
DESIGN PBIT SST MI CH
DSCP&PBIT&1 ENB 1 1
PART1 SBIT AT DF MI
Qlt=PBIT/10 CLK
PART2 SBIT AT NS MI
Qlt=PBIT/20 CLK
DESIGN PBIT SST MI CH
DSCP&PBIT&3 ENB 1 1
PART1 SBIT AT NS CS
Qlt=PBIT/40 FAIL
PART2 SBIT AT NS MI
Qlt=PBIT/50 ACT
END
Qality= DSCP&PBIT&1 %
Qality= PBIT/10 %
Qality= PBIT/20 %
Qality= DSCP&PBIT&1 && Qlt=PBIT/10 %
Qality= DSCP&PBIT&3 %
Qality= PBIT/40 %
Qality= PBIT/50 %
Qality= DSCP&PBIT&3 && Qlt=PBIT/40 %
textArea.append("Qality= " + matcher.group(2) + " %");
textArea.append("Qality= " + matcher.group(4) + " =" + matcher.group(6) + " %");
textArea.append("Qality= " + matcher.group(8) + " =" + matcher.group(10) + " %");
textArea.append("Qality= " + matcher.group(2) + " && " + matcher.group(6) + " %");
textArea.append();
\s+) et d'un ou plusieurs caractères "non-espace" (expression régulière
\S+) que je capture en rajoutant les parenthèses pour obtenir ma variable
String p = "\\s+(\\S+)";qui représente un champs texte dans ton bloc.
pdans l'expression régulière qu'il y a de champs à récupérer. J'en avais 11 hier (avec mon
p+p+p+p+p+p+p+p+p+p+p), il va en falloir 22 aujourd'hui avec ta nouvelle description de fichiers.
pau lieu des 11, qui seront répartis comme ceci :
textArea.append("Qality= " + matcher.group(5) + " %"); textArea.append("Qality= " + matcher.group(14) + " %"); textArea.append("Qality= " + matcher.group(21) + " %"); textArea.append("Qality= " + matcher.group(5) + " && " + matcher.group(14) + " %"); textArea.append();
Qality= DSCP&PBIT&1 %
Qality= PBIT/10 %
Qality= PBIT/20 %
Qality= DSCP&PBIT&1 && Qlt=PBIT/10 %
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at chgrot.dcfgt$2.actionPerformed(test.java:73)
public class test {
private JFrame frame;
protected Scanner sc;
private JTextArea textArea;
.
.
.
public void actionPerformed(ActionEvent arg0) {
try (Scanner sc = new Scanner(new File("C:\\test.txt"))) {
sc.useDelimiter("DESIGN");
String p = "\\s+(\\S+)";
Pattern pattern = Pattern.compile(p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p);
while (sc.hasNext()) {
Matcher matcher = pattern.matcher(sc.next());
if (matcher.find()) {
textArea.append("Qality= " + matcher.group(5) + " %");
matcher.group(14).substring(4)
package teststring;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.awt.event.ActionEvent;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
import javax.swing.JPanel;
public class test1 {
private JFrame frame;
protected Scanner sc;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
test1 window = new test1();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public test1() {
initialize();
}
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 521, 432);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JButton btnNewButton = new JButton("Do");
btnNewButton.addActionListener(new ActionListener() {
private JTextArea textArea;
public void actionPerformed(ActionEvent arg0) {
try (Scanner sc = new Scanner(new File("C:\\test.txt"))) {
sc.useDelimiter("DESIGN");
String p = "\\s+(\\S+)";
Pattern pattern = Pattern.compile(p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p);
while (sc.hasNext()) {
Matcher matcher = pattern.matcher(sc.next());
if (matcher.find()) {
textArea.append("EXSPI:NAME= " + matcher.group(14).substring(4) + " ;");
}
}
sc.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
});
btnNewButton.setBounds(168, 33, 224, 23);
frame.getContentPane().add(btnNewButton);
JTextArea textArea = new JTextArea();
textArea.setBounds(57, 105, 391, 278);
frame.getContentPane().add(textArea);
}
}
private JTextArea textArea;il faudrait lui donner une valeur... comme tu l'as fait avec le
JTextArea textArea = new JTextArea();de la ligne 85, mais c'est bizarre d'en avoir deux, ce devrait être la même.
import java.io.*; import java.util.Scanner; import java.util.function.Consumer; import java.util.regex.*; import javax.swing.*; public class Test1 extends JFrame { private static final long serialVersionUID = 1L; public static void main(String[] args) { new Test1().setVisible(true); } public Test1() { setBounds(100, 100, 521, 432); setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(null); JTextArea textArea = new JTextArea(); textArea.setBounds(57, 105, 391, 278); add(textArea); JButton btnNewButton = new JButton("Do"); btnNewButton.setBounds(168, 33, 224, 23); add(btnNewButton); btnNewButton.addActionListener(e -> doAction(textArea::append)); } private static void doAction(Consumer<String> append) { try (Scanner sc = new Scanner(new File("C:\\test.txt"))) { sc.useDelimiter("DESIGN"); String p = "\\s+(\\S+)"; Pattern pattern = Pattern.compile(p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p); while (sc.hasNext()) { Matcher matcher = pattern.matcher(sc.next()); if (matcher.find()) { append.accept("EXSPI:NAME= " + matcher.group(14).substring(4) + " ;"); } } // sc.close(); // inutile dans un try-with-resources ! } catch (FileNotFoundException e) { throw new UncheckedIOException(e); } } }
btnNewButton.addActionListener(e -> doAction(textArea::append)); } private static void doAction(Consumer<String> append) {
btnNewButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { doAction(textArea); } }); } private static void doAction(JTextArea jTextArea) {
append.accept("EXSPI:NAME= "par
jTextArea.append("EXSPI:NAME= ".