F
Fortgeschrittener Noob
Gast
Hallo Leute!
Ich hab ein Programm, das eine *.csv Datei lädt. Leider gibts da bei mir noch Probleme
1. erkennt der Scanner ein Leerzeichen als Enter
2. wenn in einer Spalte nichts drin steht und in der nächsten wieder etwas steht "erkennt" der Scanner das nicht und schreibt den Inhalt ins falsche Feld.
In dem Programm soll die geladenen Datei sozusagen wie in Excel aussehen.
Hoffe jemand kann mir helfen. Vielen Dank!
Hier das bisherige Programm:
Ich hätt gern noch ne csv Datei als Beispiel drangehängt, geht aber leider nicht.
Ich hab ein Programm, das eine *.csv Datei lädt. Leider gibts da bei mir noch Probleme
1. erkennt der Scanner ein Leerzeichen als Enter
2. wenn in einer Spalte nichts drin steht und in der nächsten wieder etwas steht "erkennt" der Scanner das nicht und schreibt den Inhalt ins falsche Feld.
In dem Programm soll die geladenen Datei sozusagen wie in Excel aussehen.
Hoffe jemand kann mir helfen. Vielen Dank!
Hier das bisherige Programm:
Code:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.StringTokenizer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class Hauptklasse {
static int zeile;
static int spalte;
static int anzahlZeilen=10;
public static void main(String[] args) {
Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("Tabellenprogramm");
shell.setBounds(0, 0, 800, 600);
// Ausrichtung der Tabelle
int links = 5;
int oben = 70;
int hoehe = 20;
int breite = 55;
final Button oeffnen = new Button(shell, SWT.NONE);
final Text[][] feld = new Text[anzahlZeilen][14];
final Text eingabe = new Text(shell, SWT.NONE);
eingabe.setBounds(200,30,300,30);
for(zeile=0;zeile<anzahlZeilen;zeile++) {
for(spalte=0;spalte<14;spalte++) {
feld[zeile][spalte] = new Text(shell, SWT.BORDER);
feld[zeile][spalte].setBounds(links+spalte*breite, oben+hoehe*zeile, breite, hoehe);
}
}
oeffnen.setBounds(50, 20, 100, 25);
oeffnen.setText("Datei öffnen");
oeffnen.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
FileDialog dia = new FileDialog(shell, SWT.OPEN);
String filename = dia.open();
if(filename!=null) {
try {
File datei = new File(filename);
Scanner s = new Scanner(datei);
String zeileStr = new String();
for(zeile=0;zeile<anzahlZeilen;zeile++) {
if(s.hasNext()) {
zeileStr=s.next();
StringTokenizer st = new StringTokenizer(zeileStr, ";");
for(spalte=0;spalte<14;spalte++) {
if(st.hasMoreTokens()) {
System.out.println(st.countTokens());
feld[zeile][spalte].setText(st.nextToken());
}
}
}
}
s.close();
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
});
shell.open();
while (!shell.isDisposed())
if (!display.readAndDispatch())
display.sleep();
}
}
Ich hätt gern noch ne csv Datei als Beispiel drangehängt, geht aber leider nicht.