Hi,
Kumpel von mir, hat eine CSV Datenbank und da stehen Sachen zum Interpreter, Songs etc drinne. Hier kleiner Ausschnitt:
Cover-Interpret;CV-Interpret-Bemerkung;Cover-Titel;CV-Jahr;Cover-Bemerkung;Original-Interpret;OV-Interpret-Bemerkung;Original-Titel;OV-Jahr;Original-Bemerkung;Art;Erfassung
Curtis Lee;;"D" In Love;1960;;Cliff Richard & the Shadows;;"D" In Love;1960;Urheber: Tepper / Bennett;C;2006-08-24
Danny Dean & The Homewreckers;;"D" In Love;;;Cliff Richard & the Shadows;;"D" In Love;1960;Urheber: Tepper / Bennett;C;2005-11-22
Die Flippers;;"Je t'aime" heißt: "Ich liebe dich";1989;;The Teddy Bears;;To Know Him Is To Love Him;1958;Urheber: Phil Spector;C;2005-08-17
Dinah Shore;;"Murder" He Says;1943;;Roy Eldridge with Gene Krupa & Anita O'Day;;Murder He Says;194?;Urheber: Frank Loesser / Jimmy McHugh;C;2006-05-29
James Galway;;"The Thorn Birds" Theme;1988;;Henry Mancini;;Thorn Birds Theme;1984;;C;2004-10-19
Young Gunz feat. Juelz Santana;;$$$ Girlz;2004;;Daryl Hall & John Oates;;Rich Girl;1976;Urheber: Daryl Hall;Z;2005-03-31
Evan Dando & Juliana Hatfield;;$1000 Wedding;1999;;Gram Parsons;;$1000 Wedding;1973;;C;2005-05-30
The Mekons;;$1000 Wedding;1986;;Gram Parsons;;$1000 Wedding;1973;;C;2005-05-30
Tom Skinner;;$1000 Wedding;1999;;Gram Parsons;;$1000 Wedding;1973;;C;2005-05-30
Willie Nelson;;$1000 Wedding;2006;;Gram Parsons;;$1000 Wedding;1973;;C;2007-01-06
Und er möchte, dass wenn er jetzt ein Name eingigt, dann soll alles zu dem Menschen angezeigt werden, was in der Datenbank steht, falls ich ihn richtig verstanden habe.
Ich weiss natürlich nicht wie man das macht
deshalb frage ich euch. Java kennt keinen CSV Reader, deshalb habe ich einen den hier heruntergeladen :
http://www.csvreader.com/ und dann nach diesem Beispiel http://www.csvreader.com/java_csv_samples.php meinen Code angepasst:
import java.io.IOException;
import com.csvreader.CsvReader;
public class Main {
public static void main(String[] args) throws IOException {
CsvReader reader = new CsvReader("datenbank.csv");
reader.readHeaders();
while (reader.readRecord())
{
String C_Interpret = reader.get("Cover-Interpret");
String C_Interpret_Bemerkung = reader.get("CV-Interpret-Bemerkung");
String C_Titel = reader.get("Cover-Titel");
String C_Jahr = reader.get("CV-Jahr");
String C_Bemerkung = reader.get("Cover-Bemerkung");
String O_Interpret = reader.get("Original-Interpret");
String OV_Interpret_Bemerkung = reader.get("OV-Interpret-Bemerkung");
String Original_Titel = reader.get("Original-Titel");
String OV_Jahr = reader.get("OV-Jahr");
String Original_Bemerkung = reader.get("Original-Bemerkung");
String Art = reader.get("Art");
String Erfassung = reader.get("Erfassung");
// perform program logic here
}
reader.close();
}
}```
Aber wie ich weiter machen soll, habe ich keine Ahnung. Vieleicht hat jemand so was schon mal gemacht oder weiss wie es geht.
Danke
erstmal als Hinweis CSV Dateien sind keine Datenbanken, das sind stink normale ASCII Dateien die eine Tabelle enthalten (da kann man auch gleich eine Excel Tabelle nehmen ;))
naja du müsstest jetzt einfach alle Zeilen nach dem Namen durchsuchen (name.equals(C_Interpret))
Und du weißt doch Variablen klein schreiben 
Hi :D,
Großschreibung korrigiert :D, meine Variablen sind jetzt kleingeschrieben.
Das mit suchen und ausgeben, verstehe ich nicht ganz wie das funktionieren soll.
Soll ich eine Abfrage machen if(„Curtis Lee“.equals(c_interpret)) und dann System.out.println() und wie sage ich ihm gebe mir ganze Zeile aus?
Bei normalen Txt Datei habe ich das mit BufferedReader gemacht, er mag aber den CsvReader nicht 
Danke
na du hast doch oben dein Beispiel so wie das für mich aussieht gibt es dir die ganze Datei aus oder?
Du musst jetzt halt nur die gesuchten ausfiltern
Also wenn ich die Datei ausführe, mit dem BSP Code den ich oben gezeigt habe, dann sieht es so aus, als ob er alles was in der Datei steht in die Konsole reinschreibt, nur sehe ich nichts. Ich habe rechts Scrollbalken aber wenn ich runerscrolle dann sehe ich nichts. Ich weiss nicht ob das Beispiel überhaupt funktioniert.
So und dann noch das Problem mit filtern, wie soll ich das hier machen? 
na du hast doch den Interpreten in C_Interpret das musst du nur mit deinem gesuchten vergleichen.
Ist es der gesucht ausgeben sonst nicht 
Ok ich weiss dass ich nichts weiss 
Ich versuche mal den Beispielcode zu verstehen.
Zuerst liest er die Headers, also die Felder ein und dann per while-schleife alle Werte die in den Feldern bzw Spalten stehen, richtig?
So jetzt kommen wir zum Filtern :D:D:D, kannst du mir bitte zeigen wie das geht?
Ich habe an so was gedacht:
public static void main(String[] args) throws IOException{
String s = "";
CsvReader reader = new CsvReader("datenbank.csv");
reader.readHeaders();
while (reader.readRecord())
{
String c_interpret = reader.get("Cover-Interpret");
String c_interpret_bemerkung = reader.get("CV-Interpret-Bemerkung");
String c_titel = reader.get("Cover-Titel");
String c_jahr = reader.get("CV-Jahr");
String c_bemerkung = reader.get("Cover-Bemerkung");
String o_interpret = reader.get("Original-Interpret");
String ov_interpret_bemerkung = reader.get("OV-Interpret-Bemerkung");
String original_titel = reader.get("Original-Titel");
String ov_jahr = reader.get("OV-Jahr");
String original_bemerkung = reader.get("Original-Bemerkung");
String art = reader.get("Art");
String erfassung = reader.get("Erfassung");
// perform program logic here
if("Curtis Lee".equals(c_interpret))
s = c_interpret;
}
System.out.println(s);
reader.close();
}
}```
Das funktioniert auch nicht, wie immer.:)
Totall falsch oder?
PS: Dass die Konsole so groß war, lag an mir, hatte System.out.println() in die Schleife reingeschrieben.
zu den Ausgaben kann ich dir nichts sagen weil ich da nicht getestet hab sieh dir doch die Ausgaben genau an und versuch sie zu verstehen 
und das mit dem Filtern hast du schon richtig angefangen „if(„Curtis Lee“.equals(c_interpret))“ nur halt das vor allen anderen 
"nur halt das vor allen anderen " – wie das verstehen ?
Meine if Abfrage wird nie ausgeführt, wieso? Ich habe dort s = “test” versucht, aber kommt nichts in der Ausgabe.
das liegt daran das du das falsche Trennzeichen hast mach CsvReader reader = new CsvReader(„datenbank.csv“,’;’);
kleiner Tipp sieh auch mal in die API Doc und probier einfach mal paar Methoden durch 
dann hättest du gesehen das getValues() dir einen Array zurückgeben soll dir aber nur ein Element zurück gibt 
Sorry nix verstehen.
1 Frage: CsvReader reader = new CsvReader(“datenbank.csv”,’;’); wie bist du da drauf gekommen, wo hast du gesucht? In dem Code oben steht so was nicht.
Es funktioniert aber immer noch nicht, die if Abfrage funktioniert immer noch nicht.
2. getValues()? Wo steht das und wofür brauche ich es?http://opencsv.sourceforge.net/api/au/com/bytecode/opencsv/CSVReader.html
ich habe hier API von dem CSV Reader gefunden, ist das die falsche? Hier stehen nur 3 Methoden drinne.
sieh in die zip Datei da ist die Doc drin da stehen viel mehr Methoden 
achso
ok
also ich versuche erstmal selber dann klar zu kommen, was ich aber bestimmt wieder nicht schaffe :(, und wenn bis morgen ich nicht weiterkomme, dann melde ich mich wieder
So wie immer nichts hingekriegt, habe alle geters ausprobiert, alles getestet was ich für sinnvoll hilt, hat aber nichts gebracht. Meine if Abfrage funktioniert auch nicht, diese Abfage ist falsch, ich weiss nicht wie man’s richtig macht, die wird nie ausgeführt. Zeig mal bitte wie man das richtig macht, sonst bin ich mit dem CSVREADER in 2 Monaten nicht fertig :mad: 
so geht das ganz einfach 
import com.csvreader.CsvReader;
public class Main
{
public static void main(String[] args) throws IOException
{
CsvReader reader = new CsvReader("datenbank.csv",';');
reader.readHeaders();
while(reader.readRecord())
{
String interpreter = reader.get("Cover-Interpret");
if("Curtis Lee".equals(interpreter))
{
System.out.println(interpreter);
System.out.println(reader.get("CV-Interpret-Bemerkung"));
System.out.println(reader.get("Cover-Titel"));
System.out.println(reader.get("CV-Jahr"));
System.out.println(reader.get("Cover-Bemerkung"));
System.out.println(reader.get("Original-Interpret"));
System.out.println(reader.get("OV-Interpret-Bemerkung"));
System.out.println(reader.get("Original-Titel"));
System.out.println(reader.get("OV-Jahr"));
System.out.println(reader.get("Original-Bemerkung"));
System.out.println(reader.get("Art"));
System.out.println(reader.get("Erfassung"));
break;
}
}
reader.close();
}
}```
tja funktioniert nicht
ist dann doch nicht so einfach ?
Konsole ist leer. Der Name „Curtis Lee“ existiert zu 100% in der Datei. Ich habe dein Code 1 zu 1 kopiert. Also der stellt auf jeden Fall Verbindung zu der Datei her, sonst würde ja Fehler kommen oder? Fehlt dann wahrscheinlich irgendwas.
keine Ahnung was du machst bei mir funktioniert es, wenn er die Datei nicht findet dann meckert er
Schau mal das Bild an und die Konsole, die bleibt leer. Die csv befindet sich in dem Ordner von dem Programm.
Wenn ich die umbenenne oder lösche, dann kommt sofort
at com.csvreader.CsvReader.<init>(Unknown Source)
at com.csvreader.CsvReader.<init>(Unknown Source)
at Main.main(Main.java:5)
Also lädt er nicht die falsche Datei. Woran kann das liegen, dass bei mir das nicht funktioniert?
ist die Datei vielleicht leer?
Ne die ist voll, 17 mb ungepackt, ich habe dir als RAR verpackt(2 MB) und hochgeladen http://www.file-upload.net/download-182501/datenbank.rar.html
Schau dir diese Datei bitte an, vieleicht liegt es an ihr?