Hallo,
ich versuche aus einer Datei informationen für verschiedene Datentypen auszulesen. die TextDatei sieht folgendermasen aus:
Auslesen tue ich mit folgender Datei:
von bedeutung sind erst mal nur die Zeilen 31 bis 57. Ich hab es versucht über mehrere while-Schleifen die auswertung vorzunehmen, was aber nicht funktioniert und auch recht fehleranfällig ist (wennn in der Datei eine leerzeile zuviel oder zu wenig drin ist etwa)
In einem Enum (OOptionen) hab ich die Konstanten SCHICHT, SCHICHTZYKLUS, END hinterlegt.
In einer äußeren While schleife kann ich ja nach dem END als Abbruchkriterium suchen, möchte aber wenn er es nicht findet in der While Schleife gern über ein Switch die Konstanten abfragen und damit zu einem bestimmten Codebereich springen der mir die entsprechenden Element auswertet.
Benötigen tu ich z.B die namen der Schichten die möglich sind in einem Array mit dem ich dann eine JCombobox füllen kann. Oder Im Bezug von SCHICHTZYKLUS Elemente vom Typ Termin die eine Bezeichnung (String), ein Startdatum (DateTime), ein Enddatum [optional] und einen Schichtzyklus (String oder Char[]) enthält.
wie kann ich die Abfrage in einem Switch Statement angeben ? Geht das überhaupt?
MfG Fritz
ich versuche aus einer Datei informationen für verschiedene Datentypen auszulesen. die TextDatei sieht folgendermasen aus:
Java:
SCHICHTEN
FREI=0
FRUEH=1
SPAET=2
NACHT=3
SCHICHTZYKLEN
Sandstrahler Team 2;20120910;;22330001122330001122333000110
END
Auslesen tue ich mit folgender Datei:
Java:
package Kalender01;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class LesenSchreiben {
File f;
FileReader fr;
BufferedReader br;
int trennerGesamt;
String zeile, zyklus;
int counter,zz=0;
Liste schichten, schichtZyklen;
LesenSchreiben(File f) {
this.f = f;
try {
fr = new FileReader(f);
} catch (FileNotFoundException e) {
System.out.println("Fehler beim lesen der Datei!");
e.printStackTrace();
}
br = new BufferedReader(fr);
try {
zeile = br.readLine();
System.out.println(zeile);
while (!zeile.equals(OOptionen.END.toString())) {
if (zeile !=null && zeile.equals(OOptionen.SCHICHTEN.toString())){
schichten=new Liste();
zeile=br.readLine();
System.out.println("hier 1");
while (zeile != null){
System.out.println("Schicht: "+zeile);
zeile=br.readLine();
}
}else if (zeile !=null && zeile.equals(OOptionen.SCHICHTZYKLEN.toString())){
schichtZyklen=new Liste();
System.out.println("hier 2");
while (zeile != null){
System.out.println("Zyklus: "+zeile);
zeile=br.readLine();
}
}
System.out.println("durchlauf "+ zeile);
zeile=br.readLine();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void arraySchicht() {
// s=s.replaceAll(",","");
// System.out.println(s);
// String[] t=s.toString();//=char[s.length()];
// t=s.toCharArray();
System.out.println();
int zähler = 0;
// System.out.println(t.length);
// for(String f:t){
// System.out.print(f);
// zähler++;
// }
}
public String schichtZyklus() {
String zeile;
try {
zeile = br.readLine();
while (zeile != null) {
// switch(
System.out.println(zeile.lastIndexOf(';'));
// System.out.println(zeile.substring(zeile.lastIndexOf(';')+1));
zyklus = zeile.substring(zeile.lastIndexOf(';') + 1);
zeile = br.readLine();
}
} catch (IOException e) {
System.out.println("Lesefehler");
e.printStackTrace();
}
return zyklus;
}
public static void main(String[] args) {
LesenSchreiben test = new LesenSchreiben(new File(
"G:/ec_Dateienn/EclipseWork/Eigener Kalender/src/Optionen.txt"));
// test.schichtZyklus();
test.arraySchicht();
}
}
In einem Enum (OOptionen) hab ich die Konstanten SCHICHT, SCHICHTZYKLUS, END hinterlegt.
In einer äußeren While schleife kann ich ja nach dem END als Abbruchkriterium suchen, möchte aber wenn er es nicht findet in der While Schleife gern über ein Switch die Konstanten abfragen und damit zu einem bestimmten Codebereich springen der mir die entsprechenden Element auswertet.
Benötigen tu ich z.B die namen der Schichten die möglich sind in einem Array mit dem ich dann eine JCombobox füllen kann. Oder Im Bezug von SCHICHTZYKLUS Elemente vom Typ Termin die eine Bezeichnung (String), ein Startdatum (DateTime), ein Enddatum [optional] und einen Schichtzyklus (String oder Char[]) enthält.
wie kann ich die Abfrage in einem Switch Statement angeben ? Geht das überhaupt?
MfG Fritz