Innerhalb einer *.csv Datei nach Werten suchen ?

Status
Nicht offen für weitere Antworten.

Charly

Mitglied
Moin Leute,

bin blutjunger Anfänger, (obwohl schon 27 Jahre alt) ... hab leider auch keinerlei Vorkenntnisse in Programmierssprachen und mache grade eine Umschulung zum Fachinformatiker ...

Folgendes Problem ...

ich möchte aus einer *.csv Datei mehrere Sachen einzelnd auslesen, bzw. danach suchen können.

Dieses klappt auch schon ganz gut ... mit dem ersten Eintrag in der Datei ... danach kommt leider nicht mehr viel
und ich hab leider k.A. warum .... :-(


Ich glaube das der Fehler irgendwo in der Schleife while (eineAufzaehlung ....) liegt, hab mir auch schon tagelang
den Kopf zerbrochen, komm aber auf keine Lösung

Code:
   	anfangsbuchstaben = eineTastaturEingabe.readLine();
	  	
                Enumeration eineAufzaehlung = telefonliste.elements();
					
	while (eineAufzaehlung.hasMoreElements())
	   		   	{
                    	       	zeile = (String)eineAufzaehlung.nextElement();
	                   	vorname = feldAusDatensatz(zeile,1 );
		       	nummer = feldAusDatensatz(zeile, 2);
		       	
                                                if (vorname.startsWith(anfangsbuchstaben))
	                  	{
	              	                	einAusgabestrom.println("\t"+ feldAusDatensatz(zeile, 1));
		       	}			       	}
		       	else if (nummer.startsWith(anfangsbuchstaben))
		       	{
		       	                einAusgabestrom.println("\t"+ feldAusDatensatz(zeile, 2));
		       	}
		}
Code:
		String[] feld = new String[FELDER_IM_DATENSATZ];
		StringTokenizer st;
		String dasTrennzeichen = ";";
		int i=0;


		try
                                {
                                        st = new StringTokenizer(zeile, dasTrennzeichen);
	    	        while (st.hasMoreTokens())
    		        {
      			feld[i] = st.nextToken();
      			i++;
  		        }
       
		}
		catch (IndexOutOfBoundsException e)
		{
			System.err.println("Fehler");
		}
		return feld[feldNr];
 

Charly

Mitglied
:shock: Das sind fast 800 Zeilen Quelltext, aber ich kann dir die Methoden posten ...

Die Methoden sind "anrufnummerSuchen" und "feldAusDatensatz"

Ich lese eine *.csv mit folgendem Inhalt ein.

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

Ich muss StartDatum, StartZeit, EndDatum, EndZeit auslesen und weiterverarbeiten ... die Methode zum Datums-
und Zeitvergleich funktioniert auch ohne Probleme ... nur bekomme ich die Werte nicht in eine Variable eingelesen ...


Code:
	/********************************************************************
	 * Methode: anrufnummerSuchen()
	 * Aufgabe: dient zum Suchen einer Anrufnummer
	 *
	 *
	 */
		public static void anrufnummerSuchen()
	{
		//int nr;
		String zeile, test, vorname, anfangsbuchstaben;
		String nummer;
		
		try
	    {
		   	einAusgabestrom.println("Geben Sie die zu suchende Nummer ein!\n\n");
		   	anfangsbuchstaben = eineTastaturEingabe.readLine();
		   	// Objekt vom Typ Enumeration für alle Elemente des Vectors erzeugen

			einAusgabestrom.println("Anruf-Nr.: \n");
									
			Enumeration eineAufzaehlung = telefonliste.elements();
						
		   	while (eineAufzaehlung.hasMoreElements())
		   	//for (nr = 0;nr<eineZahl -1;nr++)
		   	{
		       	zeile = (String)eineAufzaehlung.nextElement();
		       	vorname = feldAusDatensatz(zeile,1 );
		       	nummer = feldAusDatensatz(zeile, 2);
		       	if (vorname.startsWith(anfangsbuchstaben))
		       	{
		       		//einAusgabestrom.println("\t"+ feldAusDatensatz(zeile, 0));
		       		einAusgabestrom.println("\t"+ feldAusDatensatz(zeile, 1));
		       		//einAusgabestrom.println("\t"+ feldAusDatensatz(zeile, 2));
		       		//einAusgabestrom.println("\t"+ feldAusDatensatz(zeile, 3));
		       		//einAusgabestrom.println("\t"+ feldAusDatensatz(zeile, 4));
		       		//einAusgabestrom.println("\t"+ feldAusDatensatz(zeile, 5));
		       		//break;
		       	}
		       	else if (nummer.startsWith(anfangsbuchstaben))
		       	{
		       		//einAusgabestrom.println("\t"+ feldAusDatensatz(zeile, 0));
		       		//einAusgabestrom.println("\t"+ feldAusDatensatz(zeile, 1));
		       		einAusgabestrom.println("\t"+ feldAusDatensatz(zeile, 2));
		       		//einAusgabestrom.println("\t"+ feldAusDatensatz(zeile, 3));
		       		//einAusgabestrom.println("\t"+ feldAusDatensatz(zeile, 4));
		       		//einAusgabestrom.println("\t"+ feldAusDatensatz(zeile, 5));
		       		//break;
		       	}
		}


	    }
		catch (Exception e)
		{
			System.err.println("Fehler");
		}
	}//Ende Methode anrufnummerSuchen()

	/********************************************************************
	 * Methode: feldAusDatensatz(String zeile, int feldNr)
	 * Aufgabe: Extrahiert aus einer Zeile das Feld,
	 * dessen Nummer übergeben wurde
	 *
	 *
	 */
		public static String feldAusDatensatz(String zeile, int feldNr)
	{
		// Felder des aktuellen Datensatzes
		String[] feld = new String[FELDER_IM_DATENSATZ];
		StringTokenizer st;
		String dasTrennzeichen = ";";
		//String token;
		int i=0;


		try
	    {
	    	st = new StringTokenizer(zeile, dasTrennzeichen);
	    	while (st.hasMoreTokens())
    		{
      			feld[i] = st.nextToken();
      			i++;
      			//einAusgabestrom.println(st.nextToken());
  			}
       
		}
		catch (IndexOutOfBoundsException e)
		{
			System.err.println("Fehler");
		}
		return feld[feldNr];
	}// Ende datensatzInFelder()
 
B

bygones

Gast
arbeitest du mit einer IDE ? dann würde ich in der Schleife mal debuggen...
ansonsten überprüf mal per System.out.println ob die Bedingungen in den ifs (startsWith) auch wirklich einmal zutreffen...
 

Charly

Mitglied
Die Schleife funktioniert auch so ...
alle Werte werden einmal per einAusgabestrom.println(...) ausgegeben ...

benutze den Ausgabestrom nur, um Umlaute korrekt auszugeben ...

nur leider stoppt die Schleife danach und gibt den Fehler
...
catch (IndexOutOfBoundsException e)
{
System.err.println("Fehler");
}
...

aus ...
 
B

bygones

Gast
als tipp: immer in einem catch Block ein e.printStackTrace() - wobei e die exception ist) reinschreiben - dann sagt dir java was falsch ist und wo das ganze passierte...

du greifst auf einen index zu der nicht existiert...
 

Charly

Mitglied
Hey,

cooler Tip ...

bekomme jetzt ne

java.lang.NullPointerException

und die verweist auf die Zeile

-->if (vorname.startsWith(anfangsbuchstaben))<--

nur erkenn ich den Fehler nicht so richtig der in dieser Zeile sein soll ......
 

Sky

Top Contributor
das heißt, dass in der Zeile entweder 'vorname' oder 'anfangsbuchstaben' gleich null sind.

Prüf doch mal die beiden variablen...
 

Charly

Mitglied
Erst mal Danke für die schnellen Antworten ...

so langsam kommt Licht ins dunkle ...

nur (auch wenn ich nerve) ich versteh immer noch nicht warum die Variable vorname keinen Wert enthält, da ich ja eine Schleife laufen lasse und ungefähr 600 Zeilen in der *.csv enhalten sind ...

das wonach ich suche ist auch mehrmals enthalten in dieser Datei,
die Schleife müsste also eigentlich weiterlaufen und mir die Werte hintereinander weg ausgeben ... oder seh ich das falsch?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J int innerhalb einer Datei ändern Java Basics - Anfänger-Themen 1
D Datei innerhalb einer zip bearbeiten Java Basics - Anfänger-Themen 8
D .class-Datei innerhalb einer .jar-Datei verändern Java Basics - Anfänger-Themen 4
bugmenot Laden einer Resourcendatei innerhalb einer Datei. Java Basics - Anfänger-Themen 19
G mit Buffered Writer innerhalb einer Datei Zeilen etc. einfüg Java Basics - Anfänger-Themen 4
F wie kann ich die Position des letzten Vokals innerhalb einer Zeichenkette ermitteln? Java Basics - Anfänger-Themen 5
J if-Schleife innerhalb einer if-Schleife wird in der Konsole nicht gelesen Java Basics - Anfänger-Themen 4
I ArrayList erstellen innerhalb einer Zeile? Java Basics - Anfänger-Themen 3
B Summe von Property innerhalb einer Liste via Lambda Java Basics - Anfänger-Themen 1
B Enum innerhalb einer Klasse / anderes Konzept Java Basics - Anfänger-Themen 8
S BufferedWriter innerhalb einer Methode Java Basics - Anfänger-Themen 2
H Innerhalb einer Methode eine Variable der aufrufenden Methode ändern? Java Basics - Anfänger-Themen 2
MiMa abbruch innerhalb einer Rekursiven Schleife Java Basics - Anfänger-Themen 5
J Array innerhalb einer Funktion mehrfach iniatilisieren Java Basics - Anfänger-Themen 4
I Innerhalb einer Methode suchen und hinzufügen. Neues Objekt in Suche dann? Java Basics - Anfänger-Themen 8
M Farben/Color Abfragen von Farben innerhalb einer Methode Java Basics - Anfänger-Themen 9
I Rückgabe und Aufruf einer Methode innerhalb einer anderen Methode Java Basics - Anfänger-Themen 5
D Methoden Implementieren von einer Zoomfunktion innerhalb eines JPanels mit null-Layoutmanager Java Basics - Anfänger-Themen 1
S Funktionen/Atrribute nur innerhalb einer package Zugänglich machen Java Basics - Anfänger-Themen 8
P Kapselung Variable innerhalb einer inneren Klasse ansprechen ohne ein Objekt erzeugen zu müssen? Java Basics - Anfänger-Themen 6
L Next()-Aufruf zweimal innerhalb einer While-Schleife bei ListIterator Java Basics - Anfänger-Themen 10
W Methodenaufruf innerhalb einer Klasse - static vs. this Java Basics - Anfänger-Themen 3
J Variablen überschreiben innerhalb einer Klasse Java Basics - Anfänger-Themen 7
A Zugriff auf Komponente innerhalb einer JPanel Java Basics - Anfänger-Themen 8
J Dateien innerhalb einer JAR verwenden Java Basics - Anfänger-Themen 3
K Methoden Zustand innerhalb einer Instanz ändern Java Basics - Anfänger-Themen 2
N OOP Zugriff auf eine Objekt innerhalb einer Klasse aus statischen Methoden Java Basics - Anfänger-Themen 9
R Interface innerhalb einer Klasse definieren..? Java Basics - Anfänger-Themen 2
C Variable Zeichenkette innerhalb einer Schleife ersetzen Java Basics - Anfänger-Themen 4
E Boolean wert innerhalb einer Tabelle ändern Java Basics - Anfänger-Themen 4
M if Abfrage innerhalb einer for-Schleife Java Basics - Anfänger-Themen 2
M if Abfrage innerhalb einer for-Schleife Java Basics - Anfänger-Themen 3
K Objekte innerhalb einer Klasse Java Basics - Anfänger-Themen 2
G Class innerhalb einer .jar editieren Java Basics - Anfänger-Themen 2
J Thread innerhalb einer Methode starten Java Basics - Anfänger-Themen 3
M Methode innerhalb einer klasse aufrufen Java Basics - Anfänger-Themen 26
J Kann man Daten innerhalb einer Datenstruktur verändern? Java Basics - Anfänger-Themen 4
U Unterschied von Klassen innerhalb einer Methode und Klassen Java Basics - Anfänger-Themen 2
B Eine void innerhalb einer anderen void Java Basics - Anfänger-Themen 7
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
I Variable innerhalb Methode: Local variable test defined in an enclosing scope must be final or effectively final Java Basics - Anfänger-Themen 3
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Z Erste Schritte Indexe innerhalb eines Arrays zusammensählen Java Basics - Anfänger-Themen 14
M Auf einen Array innerhalb eines Objekts zugreifen Java Basics - Anfänger-Themen 5
dapzoo Innerhalb eines Jahres intensivem Java-Selbststudium zur Anstellung? Java Basics - Anfänger-Themen 37
S Wert innerhalb eines anderen Wertes Java Basics - Anfänger-Themen 3
T split innerhalb Klammern ignorieren? Java Basics - Anfänger-Themen 6
x-tshainge Innerhalb von Textdatei addieren Java Basics - Anfänger-Themen 9
I Try-Catch innerhalb eines Catchblocks Java Basics - Anfänger-Themen 1
J Innerhalb von Zeichenketten tauschen Java Basics - Anfänger-Themen 1
H For-Schleife innerhalb If-Abfrage? Java Basics - Anfänger-Themen 3
A Werte innerhalb von resultset vergleichen Java Basics - Anfänger-Themen 2
B Key auslesen/ausgeben innerhalb von foreach() Java Basics - Anfänger-Themen 5
O Vererbung this innerhalb von super Java Basics - Anfänger-Themen 7
Silvascus Erste Schritte Werte innerhalb eines Arrays addieren Java Basics - Anfänger-Themen 3
L Punkt innerhalb eines Bereiches verschieben Java Basics - Anfänger-Themen 9
J Innerhalb Interfacemethode: Interface als Attribut Java Basics - Anfänger-Themen 2
S Classpath: Alle .jars innerhalb eines Ordners einbinden Java Basics - Anfänger-Themen 4
T Erste Schritte run innerhalb eines package Java Basics - Anfänger-Themen 1
B Variablen global abspeicher innerhalb von Methoden Java Basics - Anfänger-Themen 7
M Throws Anweisung innerhalb eines Methodenkopfes unklar Java Basics - Anfänger-Themen 4
M Variablen Zugriff von außerhalb eines Blockes auf eine Variable innerhalb eines Blockes Java Basics - Anfänger-Themen 2
M Text innerhalb Anführungsstriche als "eins" auswerten Java Basics - Anfänger-Themen 5
O Files eines Directories innerhalb eines JAR-Files auflisten Java Basics - Anfänger-Themen 0
I JTextfield[] innerhalb eines Itemlistener aufrufen Java Basics - Anfänger-Themen 2
B Zufallsdatum innerhalb eines bestimmten Bereiches erzeugen Java Basics - Anfänger-Themen 3
D OOP Identifzierung eines Objektes innerhalb eines Array Java Basics - Anfänger-Themen 3
G Bewegung innerhalb eines Koordinatensystems berechnen Java Basics - Anfänger-Themen 9
B for-schleife innerhalb neuer Methode Java Basics - Anfänger-Themen 5
N Innerhalb des Programmes RAM einstellen Java Basics - Anfänger-Themen 2
N Zugriff auf Werte in Arrays innerhalb ArrayList Java Basics - Anfänger-Themen 2
H Innerhalb eines Package wird eine Klassenmethode nicht gefunden. Java Basics - Anfänger-Themen 2
Kaniee Zugriffe innerhalb eines Arrays Java Basics - Anfänger-Themen 9
A objekt innerhalb der gleiche klasse Java Basics - Anfänger-Themen 10
J Innerhalb der Border zeichnen Java Basics - Anfänger-Themen 9
P Unterschied JRE innerhalb/ außerhalb des JDK Verzeichnisses? Java Basics - Anfänger-Themen 5
S Input/Output Problem mit dateizugriff innerhalb der .jar (Applet) Java Basics - Anfänger-Themen 2
K Zufällige Auswahl innerhalb eines Arrays und Arrays aus JLabel füllen Java Basics - Anfänger-Themen 32
K Bild mit Maus innerhalb eines Rahmens bewegen Java Basics - Anfänger-Themen 5
E Zeile innerhalb Datei überschreiben Java Basics - Anfänger-Themen 2
M Java-Prog soll Texte innerhalb Bildern erkennen Java Basics - Anfänger-Themen 2
S Variablen Variable innerhalb eines if-Statements? Java Basics - Anfänger-Themen 10
S Innerhalb eines Fensters ein neues erschaffen Java Basics - Anfänger-Themen 7
E Elemente innerhalb eines Arrays vergleichen Java Basics - Anfänger-Themen 7
M Main methode innerhalb von Java aufrufen Java Basics - Anfänger-Themen 11
A lokale Variable innerhalb "actionPerformed()" Java Basics - Anfänger-Themen 10
L Lokale Variable und Instanzvariable innerhalb Iterator Java Basics - Anfänger-Themen 8
M FileWriter innerhalb runnable Jar Java Basics - Anfänger-Themen 8
J Diverse Frag zu Vererbung innerhalb von Java Java Basics - Anfänger-Themen 6
O Änderungen innerhalb for-Schleife speichern Java Basics - Anfänger-Themen 17
J Wie auf eine Datei innerhalb des JAR-Files zugreifen Java Basics - Anfänger-Themen 2
radiac Datentypen RANDOM-punkt setzen INNERHALB eines BEREICHes Java Basics - Anfänger-Themen 2
T switchcase innerhalb Schleife: von case-Fall aus Schleife beenden Java Basics - Anfänger-Themen 3
L Timer innerhalb eines Threads Java Basics - Anfänger-Themen 3
H Klassen zur Anzeige ines Bildes und zum Zeichnen innerhalb diese Bildes Java Basics - Anfänger-Themen 2
M Methode innerhalb Methode Java Basics - Anfänger-Themen 10
Das Brot Relative Pfadangaben innerhalb von .jar Archiven Java Basics - Anfänger-Themen 7
C Textausgabe auf Panelen innerhalb eines Applets Java Basics - Anfänger-Themen 6
Screen Mouserobot clonen? Zeiger nur innerhalb eins Fensters? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben