Aus CSV datei lesen

in meiner CSV steht nur
Max;Muster;65555;Woauchimmer;Irgendwo;männlich;Programmiertechnik;;Netzwerktechnik;sdfsdf

und wenn ich mehrere daten speicher sieht es so aus

Max;Muster;65555;Woauchimmer;Irgendwo ;männlich;Programmiertechnik;;Netzwerktechnik;sdfsdf

;;;;;männlich;;;;

Hallo ;Duda;69123;Irgendwo;KeineAHnung;männlich;;;;

;;;;;männlich;;;;

Hans;Dieter;65123;Meckburg;An der Ecke 17;männlich;Programmiertechnik;Betriebssysteme;Netzwerktechnik;irgendwas
 
Zuletzt bearbeitet:
Hi
also ich hab jetzt eigentlich alles richtig angepasst bekomm aber die meldung nicht weg wäre net wenn du mir nochmal helfen kannst bzw dich meldest
 
ok mein freund, stell mir die csv datei zur verfügung und einen LAUFFÄHIGEN code, den ich in mein süßes kleines Eclipse importieren kann.

Dann schau ich mir den Rotz mal an.

Horido
Chriz
 
ich stell dir mal alles rein


Code:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.Vector;
import java.util.regex.*;



public class EingabeFI2 extends Frame {
  // Anfang Variablen
  private Label lblTitel = new Label();
  private Label lblName = new Label();
  private TextField txtName = new TextField();
  private Label lblVorname = new Label();
  private TextField txtVorname = new TextField();
  private Label lblStrasse = new Label();
  private TextField txtStrasse = new TextField();
  private Label lblOrt = new Label();
  private TextField txtPlz = new TextField();
  private TextField txtOrt = new TextField();
  private CheckboxGroup geschlecht = new CheckboxGroup();
  private Checkbox rbM = new Checkbox("männlich", geschlecht, true);
  private Checkbox rbW = new Checkbox("weiblich", geschlecht, false);
  private Label lblKenntnisse = new Label();
  private Checkbox ckProg = new Checkbox();
  private Checkbox ckBetr = new Checkbox();
  private Checkbox ckNet = new Checkbox();
  private Label lblWeitere = new Label();
  private TextArea textArea = new TextArea("", 1, 1,
                                           TextArea.SCROLLBARS_VERTICAL_ONLY);
  private Button btnUebernehmen = new Button();
  private Button btnLoeschen = new Button();
  private Speichern save = new Speichern();
  private DlgNochmal dlg = new DlgNochmal(this, "nochmal?", true);
  private Button btnLetzter= new Button();
  private Button btnVorwaerts = new Button();
  private Button btnZurueck = new Button();
  private Button btnErster = new Button();


  private Vector<SplitDatenhalter> datenhalter = new Vector<SplitDatenhalter>();

  // Ende Variablen
  public EingabeFI2(String title) {
    // Frame-Initialisierung
    super(title);
    addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent evt) {
          System.exit(0);
        }
      });

    int frameWidth = 557;
    int frameHeight = 300;
    setSize(frameWidth, frameHeight);

    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);

    Panel cp = new Panel(null);
    add(cp);
    cp.setBackground(Color.YELLOW);
    // Anfang Komponenten
    lblTitel.setBounds(16, 8, 400, 20);
    lblTitel.setText("Eingabeformular");
    lblTitel.setFont(new Font("MS Sans Serif", Font.BOLD, 15));
    cp.add(lblTitel);
    lblName.setBounds(16, 40, 37, 16);
    lblName.setText("Name");
    lblName.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(lblName);
    txtName.setBounds(80, 40, 193, 24);
    txtName.setText("");
    cp.add(txtName);
    lblVorname.setBounds(16, 72, 55, 16);
    lblVorname.setText("Vorname");
    lblVorname.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(lblVorname);
    txtVorname.setBounds(80, 72, 193, 24);
    txtVorname.setText("");
    cp.add(txtVorname);
    lblStrasse.setBounds(16, 104, 46, 16);
    lblStrasse.setText("Strasse");
    lblStrasse.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(lblStrasse);
    txtStrasse.setBounds(80, 104, 193, 24);
    txtStrasse.setText("");
    cp.add(txtStrasse);
    lblOrt.setBounds(16, 136, 45, 16);
    lblOrt.setText("PLZ/Ort");
    lblOrt.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(lblOrt);
    txtPlz.setBounds(80, 136, 57, 24);
    txtPlz.setText("");
    cp.add(txtPlz);
    txtOrt.setBounds(144, 136, 129, 24);
    txtOrt.setText("");
    cp.add(txtOrt);
			    rbM.setBounds(80, 176, 89, 25);
			    cp.add(rbM);
			    rbW.setBounds(176, 176, 97, 25);
			    cp.add(rbW);
    lblKenntnisse.setBounds(288, 40, 104, 16);
    lblKenntnisse.setText("Kenntnisse:");
    lblKenntnisse.setFont(new Font("MS Sans Serif", Font.BOLD, 13));
    cp.add(lblKenntnisse);
    ckProg.setBounds(288, 72, 121, 25);
    ckProg.setLabel("Programmieren");
    cp.add(ckProg);
    ckBetr.setBounds(288, 104, 121, 25);
    ckBetr.setLabel("Betriebssysteme");
    cp.add(ckBetr);
    ckNet.setBounds(288, 136, 129, 25);
    ckNet.setLabel("Netzwerke");
    cp.add(ckNet);
    lblWeitere.setBounds(288, 168, 46, 16);
    lblWeitere.setText("weitere:");
    lblWeitere.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(lblWeitere);
    textArea.setBounds(288, 192, 241, 65);
    textArea.setText("\n");
    cp.add(textArea);
    btnUebernehmen.setBounds(24, 232, 121, 25);
    btnUebernehmen.setLabel("Übernehmen");
    btnUebernehmen.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
          btnUebernehmen_ActionPerformed(evt);
        }
      });
    cp.add(btnUebernehmen);
    btnLoeschen.setBounds(160, 232, 113, 25);
    btnLoeschen.setLabel("Löschen");
    btnLoeschen.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
          btnLoeschen_ActionPerformed(evt);
        }
      });
    cp.add(btnLoeschen);
    btnErster.setBounds(24, 200, 27, 25);
    btnErster.setLabel("<");
    btnErster.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        btnErster_ActionPerformed(evt);
      }
    });
    cp.add(btnErster);
    btnLetzter.setBounds(152, 200, 27, 25);
    btnLetzter.setLabel(">");
    btnLetzter.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        btnLetzter_ActionPerformed(evt);
      }
    });
    cp.add(btnLetzter);
    btnZurueck.setBounds(64, 200, 27, 25);
    btnZurueck.setLabel("<<");
    btnZurueck.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        btnZurueck_ActionPerformed(evt);
      }
    });
    cp.add(btnZurueck);
    btnVorwaerts.setBounds(112, 200, 27, 25);
    btnVorwaerts.setLabel(">>");
    btnVorwaerts.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        btnVorwaerts_ActionPerformed(evt);
      }
    });
    cp.add(btnVorwaerts);
    // Ende Komponenten
    setResizable(false);
    setVisible(true);
    
    try{
        /** Einlesen der Datei **/
        File f = new File("meineDatei.csv");
        BufferedReader bf = new BufferedReader(new FileReader(f));
        String line = "";
       
        while((line = bf.readLine())!=null){
            String[] splittedLine = line.split(",");
            datenhalter.add(new datenhalter.add(new 

SplitDatenhalter(splittedLine[0],splittedLine[1],splittedLine[2],Integer.parseInt(splittedLine[3]),splittedLine[4

],splittedLine[5],splittedLine[6],splittedLine[7],splittedLine[8],splittedLine[9]));
        }
    }catch(Exception e){
        e.printStackTrace();
    }       
    
    
    
  }

  // Daten:
  String name = this.txtName.getText();
  String vorname = this.txtVorname.getText();
  String plz = this.txtPlz.getText();
  String ort = this.txtOrt.getText();
  String strasse = this.txtStrasse.getText();
  String geschl = "";
  String prog = "";
  String betr = "";
  String net = "";
  String weitere = "";

  // Anfang Ereignisprozeduren
  public String getSelectedRadioButton(CheckboxGroup cg) {
    return cg.getSelectedCheckbox().getLabel();
  }

  public void btnUebernehmen_ActionPerformed(ActionEvent evt) {
    // Daten ermitteln:
    name = this.txtName.getText();
    vorname = this.txtVorname.getText();
    plz = this.txtPlz.getText();
    ort = this.txtOrt.getText();
    strasse = this.txtStrasse.getText();
    geschl = getSelectedRadioButton(this.geschlecht);

    if (this.ckProg.getState()) {
      this.prog = "Programmiertechnik";
    }

    if (this.ckBetr.getState()) {
      this.betr = "Betriebssysteme";
    }

    if (this.ckNet.getState()) {
      this.net = "Netzwerktechnik";
    }

    weitere = this.textArea.getText();

    // Daten prüfen:
    // 1. PLZ:
    Pattern p = Pattern.compile("^[0-9][1-9][0-9]{3}$");
    Matcher m = p.matcher(this.plz);
    boolean plzOk = m.matches();

    if (!plzOk) {
      this.txtPlz.setBackground(Color.RED);
      this.txtPlz.setText("");
      this.txtPlz.requestFocus();
    } else {
      this.txtPlz.setBackground(Color.WHITE);
    }

    // 2. sonstige Daten:
    boolean datenOk = (!name.equals("")) && (!vorname.equals("")) &&
                      (!plz.equals("")) && (!ort.equals("")) &&
                      (!strasse.equals(""));

    if (!datenOk) {
      this.lblTitel.setForeground(Color.RED);
      this.lblTitel.setText("Bitte alle Felder ausfüllen");
    } else {
      this.lblTitel.setForeground(Color.BLACK);
      this.lblTitel.setText("Eingabeformular");
    }

    // Daten speichern:
    try {
      this.speichern();
    }catch(IOException e) {
      System.out.println("Fehler in speichern()");
    }
    // Dialog, weiteren Datensatz eingeben:
    if((datenOk) && (plzOk)) {
      this.nochmal();

    }

  }

  public void btnLoeschen_ActionPerformed(ActionEvent evt) {
    this.loeschen();
  }

  public void  btnErster_ActionPerformed(ActionEvent evt) {
	 
	
  }
  public void  btnLetzter_ActionPerformed(ActionEvent evt) {

  }
  public void  btnVorwaerts_ActionPerformed(ActionEvent evt) {

  }
  public void  btnZurueck_ActionPerformed(ActionEvent evt) {

  }
  // Ende Ereignisprozeduren
  // eigene Methoden:
  private void speichern() throws IOException {
    this.save.makeDir("csv");
    
    this.save.makeFile("Daten.csv");
    this.save.schreibeCsvZeile(this.name, this.vorname, this.plz, this.ort,
                               this.strasse, this.geschl, this.prog, this.betr,
                               this.net, this.weitere, ';');
  }
  
  private void loeschen() {
    this.txtName.setText("");
    this.txtVorname.setText("");
    this.txtPlz.setText("");
    this.txtOrt.setText("");
    
    this.txtStrasse.setText("");
    this.rbM.setState(true);
    this.rbW.setState(false);
    this.ckProg.setState(false);
    this.ckBetr.setState(false);
    this.ckNet.setState(false);
    this.textArea.setText("");
    // Fehlermeldungen löschen:
    this.lblTitel.setForeground(Color.BLACK);
    this.lblTitel.setText("Eingabeformular");
    this.txtPlz.setBackground(Color.WHITE);
  }
  
  private void nochmal() {
    this.dlg.setVisible(true);
    // Antwort auswerten:
    if(this.dlg.getAntwort()) this.loeschen();
    System.exit(0);

  }
  
 
 /* private void readFile()
  {
    try{
      BufferedReader reader = new BufferedReader(new FileReader("C:/Dokumente und Einstellungen/tgrahl/Eigene 

Dateien/workspaces/Test/Project/csv/Daten.csv"));
      
      String strLine;
      while ( (strLine = reader.readLine()) != null )
      {
        String[] items = strLine.split(";");
        
        System.out.println(items[5]);
      }
     
    }
    catch(FileNotFoundException e) {}
    catch(IOException e) {
    	}
    }
*/
  

  /** aktuelle Seite **/
  private int current_page = 0;
  
  private void pageForward(){
      if(datenhalter.size()>=(current_page+1)){
          current_page++;
          txtName.setText(datenhalter.get(current_page).getName());
          
      }
  }
 
  private void pageBackward(){
      if((current_page-1)>0){
          current_page--;
          txtName.setText(datenhalter.get(current_page).getName());
         
      }
  }
  
  
  
  
  
  
  public static void main(String[] args) {
    new EingabeFI2("EingabeFI2");
  }
  
  
}

2.te klasse
Code:
import java.io.*;

public class Speichern {
  private File verzeichnis;
  private File datei;
  private RandomAccessFile raf;
  
  public Speichern() {

  }
  
  public void makeDir(String verz) throws IOException  {
    this.verzeichnis = new File(verz);
    if(!this.verzeichnis.exists()) this.verzeichnis.mkdir();
  }
  
  public void makeFile(String file) throws IOException {
    this.datei = new File(this.verzeichnis.getPath()+ "/" +file);
    this.raf = new RandomAccessFile(this.datei, "rw");
  }
  
  public void schreibeCsvZeile(String name,
                               String vorname,
                               String plz,
                               String ort,
                               String strasse,
                               String geschlecht,
                               String prog,
                               String betr,
                               String net,
                               String weitere,
                               char sep) throws IOException {
    long ptr = this.raf.length();
    this.raf.seek(ptr); // Pointer auf Dateiende
    this.raf.writeBytes(name + sep
                      + vorname + sep
                      + plz + sep
                      + ort + sep
                      + strasse + sep
                      + geschlecht + sep
                      + prog + sep
                      + betr + sep
                      + net + sep
                      + weitere
                      + "\r\n"
                      );
  }
}

3.te klasse
Code:
class SplitDatenhalter{
    
    String name ;
    String vorname;
    String strasse;
    int plz;
    String ort;
    String geschl;
    String prog ;
    String betr ;
    String net ;
    String weitere ;
    
   
	

    public SplitDatenhalter(String name, String vorname, String strasse, int plz, String ort, String geschl, String prog, String betr, String net, String weitere) {
		
		this.name = name;
		this.vorname = vorname;
		this.strasse = strasse;
		this.plz = plz;
		this.ort = ort;
		this.geschl = geschl;
		this.prog = prog;
		this.betr = betr;
		this.net = net;
		this.weitere = weitere;
	}



	public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getVorname() {
        return vorname;
    }

    public void setVorname(String vorname) {
        this.vorname = vorname;
    }

	public String getBetr() {
		return betr;
	}

	public void setBetr(String betr) {
		this.betr = betr;
	}

	public String getGeschl() {
		return geschl;
	}

	public void setGeschl(String geschl) {
		this.geschl = geschl;
	}

	public String getNet() {
		return net;
	}

	public void setNet(String net) {
		this.net = net;
	}

	public String getOrt() {
		return ort;
	}

	public void setOrt(String ort) {
		this.ort = ort;
	}

	public int getPlz() {
		return plz;
	}

	public void setPlz(int plz) {
		this.plz = plz;
	}

	public String getProg() {
		return prog;
	}

	public void setProg(String prog) {
		this.prog = prog;
	}

	public String getStrasse() {
		return strasse;
	}

	public void setStrasse(String strasse) {
		this.strasse = strasse;
	}

	public String getWeitere() {
		return weitere;
	}

	public void setWeitere(String weitere) {
		this.weitere = weitere;
	}
  
}

und die letzte noch
Code:
import java.awt.*;
import java.awt.event.*;

class MeinWindowListener extends WindowAdapter {
  
  public void windowClosing(WindowEvent e) {
    System.exit (0);
  }
}

und die csv is ja egal musst ja nur eine anlegen und den pfad ändern
 
ich stell dir mal alles rein


Code:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.Vector;
import java.util.regex.*;



public class EingabeFI2 extends Frame {
  // Anfang Variablen
  private Label lblTitel = new Label();
  private Label lblName = new Label();
  private TextField txtName = new TextField();
  private Label lblVorname = new Label();
  private TextField txtVorname = new TextField();
  private Label lblStrasse = new Label();
  private TextField txtStrasse = new TextField();
  private Label lblOrt = new Label();
  private TextField txtPlz = new TextField();
  private TextField txtOrt = new TextField();
  private CheckboxGroup geschlecht = new CheckboxGroup();
  private Checkbox rbM = new Checkbox("männlich", geschlecht, true);
  private Checkbox rbW = new Checkbox("weiblich", geschlecht, false);
  private Label lblKenntnisse = new Label();
  private Checkbox ckProg = new Checkbox();
  private Checkbox ckBetr = new Checkbox();
  private Checkbox ckNet = new Checkbox();
  private Label lblWeitere = new Label();
  private TextArea textArea = new TextArea("", 1, 1,
                                           TextArea.SCROLLBARS_VERTICAL_ONLY);
  private Button btnUebernehmen = new Button();
  private Button btnLoeschen = new Button();
  private Speichern save = new Speichern();
  private DlgNochmal dlg = new DlgNochmal(this, "nochmal?", true);
  private Button btnLetzter= new Button();
  private Button btnVorwaerts = new Button();
  private Button btnZurueck = new Button();
  private Button btnErster = new Button();


  private Vector<SplitDatenhalter> datenhalter = new Vector<SplitDatenhalter>();

  // Ende Variablen
  public EingabeFI2(String title) {
    // Frame-Initialisierung
    super(title);
    addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent evt) {
          System.exit(0);
        }
      });

    int frameWidth = 557;
    int frameHeight = 300;
    setSize(frameWidth, frameHeight);

    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);

    Panel cp = new Panel(null);
    add(cp);
    cp.setBackground(Color.YELLOW);
    // Anfang Komponenten
    lblTitel.setBounds(16, 8, 400, 20);
    lblTitel.setText("Eingabeformular");
    lblTitel.setFont(new Font("MS Sans Serif", Font.BOLD, 15));
    cp.add(lblTitel);
    lblName.setBounds(16, 40, 37, 16);
    lblName.setText("Name");
    lblName.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(lblName);
    txtName.setBounds(80, 40, 193, 24);
    txtName.setText("");
    cp.add(txtName);
    lblVorname.setBounds(16, 72, 55, 16);
    lblVorname.setText("Vorname");
    lblVorname.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(lblVorname);
    txtVorname.setBounds(80, 72, 193, 24);
    txtVorname.setText("");
    cp.add(txtVorname);
    lblStrasse.setBounds(16, 104, 46, 16);
    lblStrasse.setText("Strasse");
    lblStrasse.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(lblStrasse);
    txtStrasse.setBounds(80, 104, 193, 24);
    txtStrasse.setText("");
    cp.add(txtStrasse);
    lblOrt.setBounds(16, 136, 45, 16);
    lblOrt.setText("PLZ/Ort");
    lblOrt.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(lblOrt);
    txtPlz.setBounds(80, 136, 57, 24);
    txtPlz.setText("");
    cp.add(txtPlz);
    txtOrt.setBounds(144, 136, 129, 24);
    txtOrt.setText("");
    cp.add(txtOrt);
			    rbM.setBounds(80, 176, 89, 25);
			    cp.add(rbM);
			    rbW.setBounds(176, 176, 97, 25);
			    cp.add(rbW);
    lblKenntnisse.setBounds(288, 40, 104, 16);
    lblKenntnisse.setText("Kenntnisse:");
    lblKenntnisse.setFont(new Font("MS Sans Serif", Font.BOLD, 13));
    cp.add(lblKenntnisse);
    ckProg.setBounds(288, 72, 121, 25);
    ckProg.setLabel("Programmieren");
    cp.add(ckProg);
    ckBetr.setBounds(288, 104, 121, 25);
    ckBetr.setLabel("Betriebssysteme");
    cp.add(ckBetr);
    ckNet.setBounds(288, 136, 129, 25);
    ckNet.setLabel("Netzwerke");
    cp.add(ckNet);
    lblWeitere.setBounds(288, 168, 46, 16);
    lblWeitere.setText("weitere:");
    lblWeitere.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(lblWeitere);
    textArea.setBounds(288, 192, 241, 65);
    textArea.setText("\n");
    cp.add(textArea);
    btnUebernehmen.setBounds(24, 232, 121, 25);
    btnUebernehmen.setLabel("Übernehmen");
    btnUebernehmen.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
          btnUebernehmen_ActionPerformed(evt);
        }
      });
    cp.add(btnUebernehmen);
    btnLoeschen.setBounds(160, 232, 113, 25);
    btnLoeschen.setLabel("Löschen");
    btnLoeschen.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
          btnLoeschen_ActionPerformed(evt);
        }
      });
    cp.add(btnLoeschen);
    btnErster.setBounds(24, 200, 27, 25);
    btnErster.setLabel("<");
    btnErster.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        btnErster_ActionPerformed(evt);
      }
    });
    cp.add(btnErster);
    btnLetzter.setBounds(152, 200, 27, 25);
    btnLetzter.setLabel(">");
    btnLetzter.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        btnLetzter_ActionPerformed(evt);
      }
    });
    cp.add(btnLetzter);
    btnZurueck.setBounds(64, 200, 27, 25);
    btnZurueck.setLabel("<<");
    btnZurueck.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        btnZurueck_ActionPerformed(evt);
      }
    });
    cp.add(btnZurueck);
    btnVorwaerts.setBounds(112, 200, 27, 25);
    btnVorwaerts.setLabel(">>");
    btnVorwaerts.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        btnVorwaerts_ActionPerformed(evt);
      }
    });
    cp.add(btnVorwaerts);
    // Ende Komponenten
    setResizable(false);
    setVisible(true);
    
    try{
        /** Einlesen der Datei **/
        File f = new File("meineDatei.csv");
        BufferedReader bf = new BufferedReader(new FileReader(f));
        String line = "";
       
        while((line = bf.readLine())!=null){
            String[] splittedLine = line.split(",");
            datenhalter.add(new datenhalter.add(new 

SplitDatenhalter(splittedLine[0],splittedLine[1],splittedLine[2],Integer.parseInt(splittedLine[3]),splittedLine[4

],splittedLine[5],splittedLine[6],splittedLine[7],splittedLine[8],splittedLine[9]));
        }
    }catch(Exception e){
        e.printStackTrace();
    }       
    
    
    
  }

  // Daten:
  String name = this.txtName.getText();
  String vorname = this.txtVorname.getText();
  String plz = this.txtPlz.getText();
  String ort = this.txtOrt.getText();
  String strasse = this.txtStrasse.getText();
  String geschl = "";
  String prog = "";
  String betr = "";
  String net = "";
  String weitere = "";

  // Anfang Ereignisprozeduren
  public String getSelectedRadioButton(CheckboxGroup cg) {
    return cg.getSelectedCheckbox().getLabel();
  }

  public void btnUebernehmen_ActionPerformed(ActionEvent evt) {
    // Daten ermitteln:
    name = this.txtName.getText();
    vorname = this.txtVorname.getText();
    plz = this.txtPlz.getText();
    ort = this.txtOrt.getText();
    strasse = this.txtStrasse.getText();
    geschl = getSelectedRadioButton(this.geschlecht);

    if (this.ckProg.getState()) {
      this.prog = "Programmiertechnik";
    }

    if (this.ckBetr.getState()) {
      this.betr = "Betriebssysteme";
    }

    if (this.ckNet.getState()) {
      this.net = "Netzwerktechnik";
    }

    weitere = this.textArea.getText();

    // Daten prüfen:
    // 1. PLZ:
    Pattern p = Pattern.compile("^[0-9][1-9][0-9]{3}$");
    Matcher m = p.matcher(this.plz);
    boolean plzOk = m.matches();

    if (!plzOk) {
      this.txtPlz.setBackground(Color.RED);
      this.txtPlz.setText("");
      this.txtPlz.requestFocus();
    } else {
      this.txtPlz.setBackground(Color.WHITE);
    }


    // 2. sonstige Daten:
    boolean datenOk = (!name.equals("")) && (!vorname.equals("")) &&
                      (!plz.equals("")) && (!ort.equals("")) &&
                      (!strasse.equals(""));

    if (!datenOk) {
      this.lblTitel.setForeground(Color.RED);
      this.lblTitel.setText("Bitte alle Felder ausfüllen");
    } else {
      this.lblTitel.setForeground(Color.BLACK);
      this.lblTitel.setText("Eingabeformular");
    }

    // Daten speichern:
    try {
      this.speichern();
    }catch(IOException e) {
      System.out.println("Fehler in speichern()");
    }
    // Dialog, weiteren Datensatz eingeben:
    if((datenOk) && (plzOk)) {
      this.nochmal();

    }

  }

  public void btnLoeschen_ActionPerformed(ActionEvent evt) {
    this.loeschen();
  }

  public void  btnErster_ActionPerformed(ActionEvent evt) {
	 
	
  }
  public void  btnLetzter_ActionPerformed(ActionEvent evt) {

  }
  public void  btnVorwaerts_ActionPerformed(ActionEvent evt) {

  }
  public void  btnZurueck_ActionPerformed(ActionEvent evt) {

  }
  // Ende Ereignisprozeduren
  // eigene Methoden:
  private void speichern() throws IOException {
    this.save.makeDir("csv");
    
    this.save.makeFile("Daten.csv");
    this.save.schreibeCsvZeile(this.name, this.vorname, this.plz, this.ort,
                               this.strasse, this.geschl, this.prog, this.betr,
                               this.net, this.weitere, ';');
  }
  
  private void loeschen() {
    this.txtName.setText("");
    this.txtVorname.setText("");
    this.txtPlz.setText("");
    this.txtOrt.setText("");
    
    this.txtStrasse.setText("");
    this.rbM.setState(true);
    this.rbW.setState(false);
    this.ckProg.setState(false);
    this.ckBetr.setState(false);
    this.ckNet.setState(false);
    this.textArea.setText("");
    // Fehlermeldungen löschen:
    this.lblTitel.setForeground(Color.BLACK);
    this.lblTitel.setText("Eingabeformular");
    this.txtPlz.setBackground(Color.WHITE);
  }
  
  private void nochmal() {
    this.dlg.setVisible(true);
    // Antwort auswerten:
    if(this.dlg.getAntwort()) this.loeschen();
    System.exit(0);

  }
  
 
 /* private void readFile()
  {
    try{
      BufferedReader reader = new BufferedReader(new FileReader("C:/Dokumente und Einstellungen/tgrahl/Eigene 

Dateien/workspaces/Test/Project/csv/Daten.csv"));
      
      String strLine;
      while ( (strLine = reader.readLine()) != null )
      {
        String[] items = strLine.split(";");
        
        System.out.println(items[5]);
      }
     
    }
    catch(FileNotFoundException e) {}
    catch(IOException e) {
    	}
    }
*/
  

  /** aktuelle Seite **/
  private int current_page = 0;
  
  private void pageForward(){
      if(datenhalter.size()>=(current_page+1)){
          current_page++;
          txtName.setText(datenhalter.get(current_page).getName());
          
      }
  }
 
  private void pageBackward(){
      if((current_page-1)>0){
          current_page--;
          txtName.setText(datenhalter.get(current_page).getName());
         
      }
  }
  
  
  
  
  
  
  public static void main(String[] args) {
    new EingabeFI2("EingabeFI2");
  }
  
  
}

2.te klasse
Code:
import java.io.*;

public class Speichern {
  private File verzeichnis;
  private File datei;
  private RandomAccessFile raf;
  
  public Speichern() {

  }
  
  public void makeDir(String verz) throws IOException  {
    this.verzeichnis = new File(verz);
    if(!this.verzeichnis.exists()) this.verzeichnis.mkdir();
  }
  
  public void makeFile(String file) throws IOException {
    this.datei = new File(this.verzeichnis.getPath()+ "/" +file);
    this.raf = new RandomAccessFile(this.datei, "rw");
  }
  
  public void schreibeCsvZeile(String name,
                               String vorname,
                               String plz,
                               String ort,
                               String strasse,
                               String geschlecht,
                               String prog,
                               String betr,

                               String net,
                               String weitere,
                               char sep) throws IOException {
    long ptr = this.raf.length();
    this.raf.seek(ptr); // Pointer auf Dateiende
    this.raf.writeBytes(name + sep
                      + vorname + sep
                      + plz + sep
                      + ort + sep
                      + strasse + sep
                      + geschlecht + sep
                      + prog + sep
                      + betr + sep
                      + net + sep
                      + weitere
                      + "\r\n"
                      );
  }
}

3.te klasse
Code:
class SplitDatenhalter{
    
    String name ;
    String vorname;
    String strasse;
    int plz;
    String ort;
    String geschl;
    String prog ;
    String betr ;
    String net ;
    String weitere ;
    
   
	

    public SplitDatenhalter(String name, String vorname, String strasse, int plz, String ort, String geschl, String prog, String betr, String net, String weitere) {
		
		this.name = name;
		this.vorname = vorname;
		this.strasse = strasse;
		this.plz = plz;
		this.ort = ort;
		this.geschl = geschl;
		this.prog = prog;
		this.betr = betr;
		this.net = net;
		this.weitere = weitere;
	}



	public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getVorname() {
        return vorname;
    }

    public void setVorname(String vorname) {
        this.vorname = vorname;
    }

	public String getBetr() {
		return betr;
	}

	public void setBetr(String betr) {
		this.betr = betr;
	}

	public String getGeschl() {
		return geschl;
	}

	public void setGeschl(String geschl) {
		this.geschl = geschl;
	}

	public String getNet() {
		return net;
	}

	public void setNet(String net) {
		this.net = net;
	}

	public String getOrt() {
		return ort;
	}

	public void setOrt(String ort) {
		this.ort = ort;
	}

	public int getPlz() {
		return plz;
	}

	public void setPlz(int plz) {
		this.plz = plz;
	}

	public String getProg() {
		return prog;
	}

	public void setProg(String prog) {
		this.prog = prog;
	}

	public String getStrasse() {
		return strasse;
	}

	public void setStrasse(String strasse) {
		this.strasse = strasse;
	}

	public String getWeitere() {
		return weitere;
	}

	public void setWeitere(String weitere) {
		this.weitere = weitere;
	}
  
}

und die letzte noch
Code:
import java.awt.*;
import java.awt.event.*;

class MeinWindowListener extends WindowAdapter {
  
  public void windowClosing(WindowEvent e) {
    System.exit (0);
  }
}

und die csv is ja egal musst ja nur eine anlegen und den pfad ändern
 
So, ein Tip als erstes. Les dir mal bitte durch, wie man ein Programm gut strukturiert. Das ist bei dir nämlich nicht zu sehen. Also Struktur mein ich.

Egal, ich denke du hast ein grundsätzliches Problem.

Du hast mir deine csv datei gezeigt, die da angeblich so aussieht:

Code:
Max;Muster;65555;Woauchimmer;Irgendwo ;männlich;Programmiertechnik;;Netzwerktechnik;sdfsdf

;;;;;männlich;;;;

Hallo ;Duda;69123;Irgendwo;KeineAHnung;männlich;;;;

;;;;;männlich;;;;

Da frag ich mich doch a) wie kommen die Leerzeichen da rein und b) wieso(wenn du in deinem Programm doch eine Abfrage hast das alle Felder ausgefüllt werden müssen) sind in den beiden Einträgen da oben nur männlich und sonst keine Einträge vorhanden

Speicher ich die Daten mit meiner Methode ab, dann bekomme ich eine csv Datei die da so aussieht:

Code:
e;e;3;f;e;männlich;;;Netzwerktechnik;
e;e;33;f;e;männlich;;;Netzwerktechnik;
e;e;3333333333;f;e;männlich;;;Netzwerktechnik;
e;e;48784;f;e;männlich;;;Netzwerktechnik;
e;;48784;;;männlich;;;Netzwerktechnik;
e;o;48784;;o;männlich;;;Netzwerktechnik;
e;o;48784;i;o;männlich;;;Netzwerktechnik;

Wenn ich dann allerdings die Einträge wieder einlese fällt mir auf, das du noch einen flüchtigkeitsfehler gemacht hast. Du bekommst eine NumberformatException... Kannst du dir vorstellen warum?

Du hast nun also 2 Probleme:

a) Deine Methode zum speichern ist noch nicht perfekt. (\r\n ist doppelt, ein \n reicht)
b) deine methode zum auslesen ist auch noch nicht 100 pro. (Tip: Schau dir mal die Position des PLZ in der csv Datei an und dann die, die du in splitedLine[X] ausliest...)

Wenn du das geschafft hast dann geb ich dir mal ein gegenbeispiel von deinem Programm, welches etwas schöner Strukturiert ist, nur um mal einen anderen Stil kennenzulernen.

Dann muss ich aber auch weiter ran, sonst krieg ich stress mitm Proff ;)

Chriz
 
ok danke
zu b) das habe ich schon geändert ist mir erst aufgefallen nach dem ich es gepostet hatte

des andre werd ich auch mal ändern.
wäre echt coll wenn du mir deine versio nreinstellen könntest
 
so mein freund, ich hab dir da mal einen gebaut.

nun eine frage. löschen und editieren habe ich noch nicht umgesetzt.

muss das auch noch mit rein oder net? Weil wenn du zur zeit auf einem Eintrag stehst, den editiert hast und auf übernehmen klickst, dann speichert er in der bisherigen struktur n neuen eintrag. und das ist ja eigentlich doof...

Hordio
Der Chriz


PS: Neun von zehn Stimmen sagen mir, ich sei verrückt. Nur die zehnte nicht. Die summt die Melodie von Tetris ;)
 
hi,
nochmals danke für deine hilfe. Wenn es keine umstände macht kannste noch das gern noch mit rein machen. Ich hoff das dir das net zu viel zeit gekostet hat.
 

Neue Beiträge

Zurück