Aus einer *.csv Datei bestimmte Werte Variablen zuweisen

Status
Nicht offen für weitere Antworten.

Charly

Mitglied
Moin,

ich hab eine *.csv Datei und möchte aus dieser nun Werte auslesen.

Die Datei sieht so aus:

--> Anschlussnummer;Anrufnummer;StartDatumAnruf;StartZeitAnruf;EndDatumAnruf;EndZeitAnruf <--

Ich brauche StartDatum, StartZeitAnruf, EndDatum und EndZeit um diese in Variablen einzulesen und
weiterzuverarbeiten...
 

Charly

Mitglied
Das Problem ist das ich keine Ahnung habe mit welcher Methode
ich das machen kann ...

Hab schon ziemlich heftig mit Schleifen experimentiert, aber
irgendwie komm ich zu keinem Ergebnis mit dem ich die Werte
an den Positionen 3 bis 6 in Variablen packen kann
 

blackfeet

Mitglied
Code:
String str = "";
String[] daten = new String[6];
try{
	int tmp; int i = 0;
	FileReader reader = new FileReader("daten.cvs");
	while((tmp = reader.read()) != -1){
		if((char) tmp != ';')
			str += (char) tmp;
		else{
			daten[i] = str;
			str = "";
			i ++;	
		}
	}
	daten[i] = str;
}catch(IOException e){
	System.out.println("Fehler beim Lesen!");
}

Gibt sicher bessere Methoden, bin auch nur ein Anänger aber so denke ich sollte es Klappen.
Deine Daten hast dann als String im Array daten[].
 

Sky

Top Contributor
Machst Du ne Analyse von deiner Telekomrechnung? ;-)

Versuchs mal damit:
Code:
String sZeile = ... // o.g. Zeile
String[] arrDaten = sZeile.split(";");
 

Charly

Mitglied
danke Leute,

klappt alles hervorragend ... nur leider lesen beide Methoden nur die erste Zeile der *.csv Datei aus

Also horizontal .... brauche aber noch dazu eine vertikale Schleife sozusagen .... *haare rauf*

Habe nämlich mehrere Daten, auf die ich zugreifen muss ... gleichzeitig sozusagen, weil soll alles im Hintergrund laufen ...
und dabei quasi die Zeitspanne des Anrufes ermitteln um im gleichen Schritt die Telefonkosten, deren Tarif ich aus einer *.ini Datei auslese, zu errechnen.

**"Alter Schwede, da hab ich mir ja wat aufgehalst!"**
 
B

bygones

Gast
so in etwa:
Code:
BufferedReader in = new BufferedReader(new FileReader(CVSDATEI));
String line;
String[] splitLines;

while((line = in.readLine()) != null) {
  splitLines = line.split(";");
   // nun mach was mit den elementen der zeile
}
 

Xandro

Bekanntes Mitglied
Death, ich hab dein Script mal umgesetzt ...

Funzt auch soweit, nur leider hapert's bei mir in Sachen Feldern ...

Code:
          RandomAccessFile f;
          f = new RandomAccessFile(jTextField_pfad.getText().toString(), "rw");
          String line;
          String[] splitlines;
          while ( (line = f.readLine()) != null) {
            splitlines = line.split(",");
            for (int i = 0; i < splitlines.length; i++) {
              String datum = splitlines[i];
              jComboBox_datum.addItem(datum);
            }
          }
          f.close();

Meine Datei ist folgendermaßen gegliedert:

10-11-2002,23432,45433,2123
11-11-2002,2334,32455,2354
...
usw.

Ich will in der ComboBox (im Code) das Datum reinpacken,
weiss aber nicht wie ich das von dem Rest abspalten soll...?
Hab mir schon indexOf() angeschaut,
aber die Methode gibt nen int zurück, womit ich nichts anzufangen weiss.

Ausserdem müssen anhand des Datums später die Zahlen zugeordnet werden.
 
B

bygones

Gast
wenn du zeilenweise einliest empfehle ich den BufferedReader...

das mit split ist schon iO - aber dann brauchst du ja nicht den ganzen Array sondern nur den ersten Eintrag (also das Datum)
Code:
while ( (line = f.readLine()) != null) {
            splitlines = line.split(",");
              jComboBox_datum.addItem(splitlines[0]);
          }
ist es das was du meinst?
 

Xandro

Bekanntes Mitglied
Klasse, genau das ist es ... vielen Dank *g*
Ich hatte es mit [1] versucht, hab aber wohl nimmer dran gedacht,
dass Felder bei 0 beginnen.

Ist RandomAccessFile nicht so gut gewählt?
Naja, immerhin klappt es ja genau so und ich dachte es wäre 'verträglicher'.

Achja nochwas:

Wenn ich in meiner ComboBox das Datum ausgewählt habe,
sollen die Zahlen an zweiter und dritter Stelle jeweils in einen JSpinner geschrieben werden.
Diese Zahlen soll man dann auf- bzw. absteigen lassen und
sie später mit den Originalen aus der Datei ersetzen (replace() ?).

Sprich ich muss genau die zweite und dritte Stelle herausfiltern,
die in derselben Zeile wie das Datum steht.

Und da fehlt mir leider der Ansatz...
 
B

bygones

Gast
RAF halte ich dann für sinnvoll wenn du im File "rumhüpfen" willst... einfaches auslesen würde ich mit dem BufferedReader erledigen.

du könntest dir eine Map struktur nehmen und als key das datum und als value die beiden anderen werte (z.b. als eigene Klasse). Dann musst du der Combobox Listener einen ItemListener hinzufügen der daraufreagiert, wenn etwas ausgewählt wurde.
 

Xandro

Bekanntes Mitglied
Ich wollt's mit nem Button zum Auslesen der Daten machen.

Hab mir auch schon was zusammengebastelt,
nur scheitert das immer beim Eintragen in den JSpinner:

Code:
jSpinner_ul.setValue(data[1]);

Kann es sein, dass das nicht geht, weil data ja nen String-Array ist?
Jedenfalls bekomm ich immer ne IllegalArgumentException.
 

Xandro

Bekanntes Mitglied
Ich habe das Model für ganzzahlige Werte nach oben und unten offen gesetzt, also:
Code:
JSpinner spinner = new JSpinner();
So stand es jedenfalls im JavaBuch.

Immerhin will ich ja kein wirkliches Model,
sondern einfach nur das Setten eines Wertes, den man dann auf- und abwerten kann.
Denn wenn ich nen Model setze, das vorgefertigt ist,
kann ich die Daten nicht mehr ändern.

UPS ... vergiss es *g*
Ich seh grad, da gibt es ja nen SpinnerNumberModel ...
Das könnte es sein :)
 

Xandro

Bekanntes Mitglied
Sooo ...

ich habs jetzt funktionierend hinbekommen, mit einfachsten Mitteln ;)

Code:
 void jButton_auslesen_actionPerformed(ActionEvent e) {
    try {
      jSpinner_ul.setEnabled(true);
      jSpinner_dl.setEnabled(true);
      jButton_eintragen.setEnabled(true);

      f = new RandomAccessFile(jTextField_pfad.getText().toString(), "rw");
      String datum = jComboBox_datum.getSelectedItem().toString();
      String line;
      Object[] data;

      while ( (line = f.readLine()) != null) {

        if (line.startsWith(datum)) {
          data = line.split(",");
          String upload = data[1].toString();

          try {
            double ul = Double.parseDouble(upload);
            Double value_ul = new Double(ul);
            Double min_ul = new Double(0);
            Double max_ul = new Double(999999999); <-- wie kann ich hier den max. Wert eingeben?
            Integer step_ul = new Integer(1);
            SpinnerNumberModel smn_ul = new SpinnerNumberModel(value_ul, min_ul,
                max_ul, step_ul);
            jSpinner_ul.setModel(smn_ul);
          }
          catch (Exception ex) {

          }
        }
      }
    }
    catch (FileNotFoundException ex) {
      JOptionPane.showMessageDialog(this, "Datei nicht vorhanden!");
    }
    catch (IOException ex) {
      JOptionPane.showMessageDialog(this, "Fehler beim Lesen!");
    }
  }
Funzt alles soweit, nur zwei Problemchen hab ich noch:
Wie kann ich für max_ul den max. Wert angeben, ohne Zahlen auszutesten?
Ausserdem aktualisiert sich mein stateChanged-Event nichtmehr,
weiss der Geier wieso:
Code:
void jSpinner_ul_stateChanged(ChangeEvent e) {
    try {
      String ul = jSpinner_ul.getValue().toString();
      String dl = jSpinner_dl.getValue().toString();
      long ul_traffic = Long.parseLong(ul);
      long dl_traffic = Long.parseLong(dl);
      long gesamttraffic = ul_traffic + dl_traffic;
      jLabel_settraffic.setText(gesamttraffic + " Bytes");
    }
    catch (Exception ex) {
    }
  }
 

KSG9|sebastian

Top Contributor
ich nehm mal an dass der JSpinner-Konstruktor nen String-Array haben will

Code:
String[] daten = new String[2];
daten[0] = "1. Eintrag";
daten[1] = "2. Eintrag";

jSpinner_ul.setValue(daten);
 

Xandro

Bekanntes Mitglied
Jep, das hab ich nach stundenlangem Biegen und Brechen dann endlich gepackt gehabt *g*

Aber mein itemChange-Event reagiert immernoch nicht,
irgendwas unterbindet diese Aktion :(

Sollte ich das anders aufrufen oder ist das okay so?
*siehe Code oben*
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Bestimmte Zeile aus einer Datei auslesen Java Basics - Anfänger-Themen 10
P Bestimmte Zeilen einer Datei ermitteln ? Java Basics - Anfänger-Themen 30
Ollek Bestimmte Zeilen aus einer HTML Datei lesen Java Basics - Anfänger-Themen 8
T Bestimmte Zeile aus einer .txt-Datei auslesen? Java Basics - Anfänger-Themen 10
B Wie eine bestimmte Zeile einer Txt-Datei lesen ? Java Basics - Anfänger-Themen 5
G Bestimmte Bereiche einer Datei auslesen Java Basics - Anfänger-Themen 5
B Ausgabe in bestimmte Zeile einer html Datei Java Basics - Anfänger-Themen 12
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
M Spezifischen Wert einer Zeile aus .txt Datei entnehmen Java Basics - Anfänger-Themen 15
B Popups mit Klicksabfangen zumAusfüllen einer .ods Datei Java Basics - Anfänger-Themen 0
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
Saiko Zeilen einer Datei einlesen Java Basics - Anfänger-Themen 3
berserkerdq2 Wie gebe ich den Pfad zu einer Datei an, die in einem Ordner in Eclipse ist? Java Basics - Anfänger-Themen 1
J int innerhalb einer Datei ändern Java Basics - Anfänger-Themen 1
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
J Wert in einer json Datei ändern und speichern Java Basics - Anfänger-Themen 3
LetsSebi Methode, die einen arry von objekten speichert in einer datei Java Basics - Anfänger-Themen 6
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
O zufälliges Wort aus einer Datei einlesen Java Basics - Anfänger-Themen 32
J Ein Wort aus einer Datei zufällig ermitteln Java Basics - Anfänger-Themen 3
S Verbindung von einer Excel Datei zu Java-- Java Basics - Anfänger-Themen 4
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
I ArrayList - Methode zum Speichern eines Eintrags in einer Datei Java Basics - Anfänger-Themen 17
S Aus einer .bz2 Datei auslesen Java Basics - Anfänger-Themen 2
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
E Einteilung der Räume mit einlesen einer .txt datei Java Basics - Anfänger-Themen 16
B Erstellung einer XML Datei Java Basics - Anfänger-Themen 8
D Erste Schritte Projekt in Ecplise in einer .zip Datei speichern Java Basics - Anfänger-Themen 8
S Probleme mit abspielen einer .wav Datei Java Basics - Anfänger-Themen 2
S Wort suchen und ersetzen in einer Datei Java Basics - Anfänger-Themen 6
A Sortieren ausgerechneter Werte aus einer TXT Datei Java Basics - Anfänger-Themen 8
das_leon Alle Zeilen einer CSV-Datei auslesen Java Basics - Anfänger-Themen 1
C Zeilen aus einer Datei in Array speichern Java Basics - Anfänger-Themen 4
F Mehrere Zeilen zu einer Zeile zusammenfügen und in eine Datei schreiben Java Basics - Anfänger-Themen 1
MaximilianTM Input/Output Einlesen und bearbeiten einer text Datei / Zeile Java Basics - Anfänger-Themen 5
E Fehler beim Debuggen einer jsp-Datei Java Basics - Anfänger-Themen 3
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
J Erstellen einer Datei ohne path Java Basics - Anfänger-Themen 1
V Klassen Fehler beim compilieren einer Datei in CamelCase Java Basics - Anfänger-Themen 2
M In einer Datei schreiben - Java Java Basics - Anfänger-Themen 3
M Eigenschaften einer Datei auslesen Java Basics - Anfänger-Themen 5
Alex/89 Werte einer .txt Datei sortieren Java Basics - Anfänger-Themen 8
N gerichteter Graph aus einer Datei einlesen Java Basics - Anfänger-Themen 21
J Encoding Problem beim Einlesen einer txt Datei mit Umlauten Java Basics - Anfänger-Themen 3
J Java - Abspielen einer wav Datei Java Basics - Anfänger-Themen 2
F Zeichen einer Datei zaehlen Java Basics - Anfänger-Themen 1
I Klassen Mehrere Java Klassen in einer .java Datei Java Basics - Anfänger-Themen 7
K Mit Scanner aus einer txt Datei lesen und jede Person mit name, vorname, geburtsdatum speichern Java Basics - Anfänger-Themen 5
E Input/Output Property-Datei aus einer Zip lesen in in einer anderen Zip-Datei ist Java Basics - Anfänger-Themen 3
M Pfad zu einer Datei in einer exportierten Jar-Datei Java Basics - Anfänger-Themen 5
Z Greenfoot Variable in einer Datei und nicht in einem Objekt/World speichern Java Basics - Anfänger-Themen 1
S Eine Spalte einer CSV Datei ausgeben Java Basics - Anfänger-Themen 2
J Zeilen aus einer .txt-Datei auslesen und Variablen zuweisen Java Basics - Anfänger-Themen 11
J Eingabeaufforderung stürzt ab (beim Ausführen einer Java-Datei) Java Basics - Anfänger-Themen 3
D Problem beim Lesen einer txt-Datei Java Basics - Anfänger-Themen 8
M Wie sämtliche Schlüssel und Attibutwerte aus einer Propertie Datei lesen? Java Basics - Anfänger-Themen 3
K Inhalt von einer csv-Datei abspeichern Java Basics - Anfänger-Themen 3
M Kopieren einer .wav Datei Java Basics - Anfänger-Themen 6
A Hashwert einer Datei berechnen Java Basics - Anfänger-Themen 3
J Daten von einer PHP Datei ablesen Java Basics - Anfänger-Themen 1
I Authentifizierung einer iCal- Datei auf einer Webseite Java Basics - Anfänger-Themen 1
kaoZ Input/Output Android : Deserialisieren von mehreren Objekten in einer Datei Java Basics - Anfänger-Themen 0
C auslesen bestimmter werte einer textdatei und anschl. hineinschreiben in eine neue txt-datei. Java Basics - Anfänger-Themen 2
Z Problem beim Lesen und Schreiben einer Datei Java Basics - Anfänger-Themen 10
O Auflösung einer Bild-Datei bekommen ohne sie herunterzuladen?? Java Basics - Anfänger-Themen 7
S Input/Output einlesen aus einer evtl. leeren Datei Java Basics - Anfänger-Themen 5
S Erste Schritte Ausführen einer Class Datei Java Basics - Anfänger-Themen 6
L Split + Zeilen einer Datei mit bestimmtem Inhalt löschen Java Basics - Anfänger-Themen 23
T NullPointerException bei Verwendung einer Klasse einer anderen .jar datei Java Basics - Anfänger-Themen 3
D Input/Output Mehrere Objecte in einer Datei Java Basics - Anfänger-Themen 5
C Wörter aus einer txt datei lesen Java Basics - Anfänger-Themen 19
M Größe einer Datei via. Link ermitteln Java Basics - Anfänger-Themen 9
E Anmeldung an Webseite und Abruf einer Datei Java Basics - Anfänger-Themen 3
P Interpreter-Fehler Probleme beim Ausführen einer Jar Datei Java Basics - Anfänger-Themen 2
A Werte per Zufall aus einer Datei ziehen und in eine neue Datei schreiben Java Basics - Anfänger-Themen 9
U Öffnen einer war-Datei Java Basics - Anfänger-Themen 3
J Öffnen einer jar-Datei Java Basics - Anfänger-Themen 22
S JTabbedPane jeder Tab in einer eigenen java Datei? Java Basics - Anfänger-Themen 3
S Arbeiten mit einer CSV Datei und Überprüfen von einem Datum in einem Textfeldern Java Basics - Anfänger-Themen 4
A Problem beim Ausführen einer .jar datei auf externen System Java Basics - Anfänger-Themen 5
K Starten einer ausführbaren JAR Datei Java Basics - Anfänger-Themen 8
F META-INF/persistence.xml in einer war-Datei Java Basics - Anfänger-Themen 6
R Kopieren einer Datei Java Basics - Anfänger-Themen 18
M Speichern in einer .txt Datei Java Basics - Anfänger-Themen 3
K Dekomprimieren einer Datei.txt Java Basics - Anfänger-Themen 22
L Problem beim Einlesen einer Datei in einen String Java Basics - Anfänger-Themen 12
A Umwandlung einer Datei ins int Java Basics - Anfänger-Themen 26
D Amplitude einer 8-Bit *.wav Datei Java Basics - Anfänger-Themen 2
H Pseudo-Stack (char[] stackArray) mit Zeichen aus einer .txt-Datei befüllen Java Basics - Anfänger-Themen 5
G Input/Output Zeilenanzahl einer .txt Datei ausgeben Java Basics - Anfänger-Themen 2
B Werte der Variable aus Klasse JTextArea in einer Datei der Klasse RandomAcessFile speichern Java Basics - Anfänger-Themen 10
D Java Applet in einer .jar datei Java Basics - Anfänger-Themen 2
K Komisches Verhalten beim erstellen einer Datei Java Basics - Anfänger-Themen 5
Luk10 Dateipfad beim Laden einer Datei + Neue kleine Frage! Java Basics - Anfänger-Themen 11
J byteweise Einlesen einer Datei "Von.. bis.." Java Basics - Anfänger-Themen 3
c_sidi90 Array in einer txt Datei speichern Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben