E
eNc
Gast
Hallo... ich habe eine Datei naus der ich die Zeilen einzeln auslese und dann will ich verschiedene Informationen aus diesen Zeilen Lesen... das will ich sehr komfortabel über regexpressions machen.
so sehen z.B. die Zeilen aus, aus denen ich die informationen gewinnen will...:
wenn so ein Pfeil drinne ist... dann will ich (in der ersten Zeile) z.B. E, F, 2, 130 haben...
wenn ich z.B. bei Zeile 5 bin... will ich A, 5 erhalten...
Hier mein Code... es wird mir immer eine IllegalStateException ausgeworfen...
hier nochmal bei rafb der Code...:
http://rafb.net/paste/results/RdTAjj82.html
Danke für eure Hilfe...
so sehen z.B. die Zeilen aus, aus denen ich die informationen gewinnen will...:
Code:
E -> F [label="2,130"];
D -> F [label="5,130"];
F -> G [label="5,120"];
G -> H [label="5,100"];
A [label="A,5"];
B [label="B,4"];
C [label="C,3"];
wenn so ein Pfeil drinne ist... dann will ich (in der ersten Zeile) z.B. E, F, 2, 130 haben...
wenn ich z.B. bei Zeile 5 bin... will ich A, 5 erhalten...
Hier mein Code... es wird mir immer eine IllegalStateException ausgeworfen...
Code:
public void readFile() {
try {
FileReader fReader = new FileReader(filename);
BufferedReader bReader = new BufferedReader(fReader);
String line;
String regEdges = "^\\s*(\\w+)\\s*->\\s*(\\w+)\\s*\\[label=\"(\\d+),(\\d+)\"\\];\\s*$";
Pattern patternEdges = Pattern.compile(regEdges);
String regNodes = "^\\s*(\\w+)\\s*\\[label=\"(\\w+),(\\d+)\"\\];\\s*$";
Pattern patternNodes = Pattern.compile(regNodes);
Matcher matches;
while ((line = bReader.readLine()) != null) {
try {
if (Pattern.matches(regEdges, line)) { // create a new edge
matches = patternEdges.matcher(line);
this.edges.add(new Edge(matches.group(1),
matches.group(2),
Integer.parseInt(matches.group(3)),
Integer.parseInt(matches.group(4))));
} else if (Pattern.matches(regNodes, line)) { // create a new node
matches = patternNodes.matcher(line);
if (matches.group(1).equals(matches.group(2)))
this.nodes.add(new Node(matches.group(1), Integer.parseInt(matches.group(3))));
}
} catch (IndexOutOfBoundsException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
}
}
bReader.close();
fReader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (PatternSyntaxException e) {
e.printStackTrace();
}
}
hier nochmal bei rafb der Code...:
http://rafb.net/paste/results/RdTAjj82.html
Danke für eure Hilfe...