# csv Bibliothek



## celloman (25. Mai 2009)

Hallo,

wo kann ich eine csvReader/writer bibliothek für eclipse (windows)runterladen.

googled habe ich schon.

finde irgrndwie nicht das richtige.


----------



## deepthroat (25. Mai 2009)

Hi.

Hast du doch schon. Bibliotheken sind nicht Eclipse spezifisch. Du mußt das Jar einfach nur einbinden.

\edit: Rechtsklick auf's Projekt -> Build Path -> Add.. Libraries usw.

Gruß


----------



## celloman (26. Mai 2009)

Hallo,

Ich habe mir diesen Ordner runtergeladen , und da sind viele jar's enthalten.
welche nehme ich jetzt.


----------



## deepthroat (26. Mai 2009)

celloman hat gesagt.:


> Hallo,
> 
> Ich habe mir diesen Ordner runtergeladen , und da sind viele jar's enthalten.
> welche nehme ich jetzt.


OpenCSV wolltest du wohl nicht? Warum stellst du denn das Archiv hier nochmal rein? Ein Link zur Originaldownloadseite hätte doch gereicht...

Du müßtest eigentlich das csv.jar einbinden, aber das ist wohl fehlerhaft erstellt worden, da nur eine recht nutzlose Klasse drin ist...

Nimm doch lieber opencsv.

Gruß


----------



## celloman (26. Mai 2009)

Hy,

da hast du vollkommen Recht.

Danke.

Ich such dann mal.


----------



## deepthroat (26. Mai 2009)

celloman hat gesagt.:


> Ich such dann mal.


Wieso suchen? Den Link hab ich dir doch schon gegeben... 

Gruß


----------



## celloman (3. Juni 2009)

*csv und BufferReader*

Hallo 

Kann mir jemand erklären was der unterschied zwischen csvReader und BufferReader ist.

Ich lese eine csv Datei ein. Dazu habe ich beide Methoden verwendet und bei beidem habe ich die gleiche Ausgabe.

Ich dachte csvReader gibt den Inhalt der Zeilen und Spalten des csv Dateies aus.

Ich wollte damit vermeiden , dass bei der Ausgabe die Zeichen  (;;;;; vermeidet werden.


----------



## Billie (3. Juni 2009)

Also CSVReader gibt es soweit ich weiß nicht in der Standard JRE ... der BufferedReader liest über einen Buffer, wie der Name schon sagt. Am Besten die Klassenbeschreibung lesen:



> Read text from a character-input stream, buffering characters so as to provide for the efficient reading of characters, arrays, and lines.
> ...
> http://java.sun.com/j2se/1.4.2/docs/api/java/io/BufferedReader.html


----------



## zeja (3. Juni 2009)

@celloman: Unterlasse es bitte zu dem selben Thema mehrere Threads aufzumachen. Ich hab die beiden Threads nun hier zusammengeführt.


----------



## deepthroat (3. Juni 2009)

Hi.





celloman hat gesagt.:


> Ich lese eine csv Datei ein. Dazu habe ich beide Methoden verwendet und bei beidem habe ich die gleiche Ausgabe.
> 
> Ich dachte csvReader gibt den Inhalt der Zeilen und Spalten des csv Dateies aus.


Je nachdem wie du den CSVReader anwendest und wie du es initialisiert hast verarbeitet der CSVReader die Datensätze der CSV Datei auch.

Gruß


----------



## celloman (3. Juni 2009)

Ich sehe kein unterschied zwischen Bufferreader und csvReader.


Ich dachte nur ,dass csvReader die Zeilen ohnen diese zusätzlichen  Symbole ausliest.

z.B. """" und ;;;;


----------



## deepthroat (3. Juni 2009)

celloman hat gesagt.:


> Ich dachte nur ,dass csvReader die Zeilen ohnen diese zusätzlichen  Symbole ausliest.
> 
> z.B. """" und ;;;;


Ja, das tut es auch. Wenn du es richtig anwendest (und z.B. das richtige Trennzeichen einstellst etc.) Aber das sagte ich ja bereits...

Gruß


----------



## celloman (3. Juni 2009)

Hy,

kann mir vielleicht jemand ein beispil Code geben, wo diese symbole nicht mit auftauchen


----------



## zeja (3. Juni 2009)

Zeig doch erstmal wie dein Code im Moment ausschaut.


----------



## celloman (3. Juni 2009)

Hier mein Code


```
public static void main(String[] argv) { 

	  
	  try{
	  CSVReader reader = new CSVReader(new FileReader("c:/tmp/data.csv"));
	    String [] nextLine;
	    while ((nextLine = reader.readNext()) != null) {
	        // nextLine[] is an array of values from the line
	    	System.out.println(nextLine[0]);

	    }

	  }
	  
	  catch (IOException e) {
	        System.out.println("Fehler: "+e.toString());
	      }
	  
	  
  }
```


----------



## deepthroat (3. Juni 2009)

celloman hat gesagt.:


> Hy,
> 
> kann mir vielleicht jemand ein beispil Code geben, wo diese symbole nicht mit auftauchen


Ist alles beschrieben: http://opencsv.sourceforge.net/  Insbesondere im Punkt *Can I use my own separators and quote characters?*

Gruß


----------



## zeja (3. Juni 2009)

Und weiter?

Wie ist die erwartete Ausgabe und was bekommst du für eine Ausgabe?


----------



## celloman (3. Juni 2009)

wenn ich die Ausgabe so definiere 


```
System.out.println(nextLine[0] + nextLine[1] + "etc...");
```

bekomme ich diese Fehlermeldung
	
	
	



```
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
	at pars.main(pars.java:22)
```

Wenn ich diese Ausgabe definiere

```
System.out.println(nextLine[0]);
```

bekomme ich diese Ausgabe

4G8_800_415____0210_A09_0002_L";"Widerstandspunktschweissen";"2756,40";"-745,00";"567,65";"0,00 mm";"";"";"";"";"";"";"";"";"";"";"not_def";"";"";"";"";"";"";"";"";"";"";"";"";"";"L";"";"";"";"";"";"";""


----------



## deepthroat (3. Juni 2009)

CSV = *Comma *Separated Value

Wenn du ein Semikolon als Trennzeichen verwendest mußt du das einstellen. Sagte ich das nicht bereits ;-]

Gruß


----------



## celloman (3. Juni 2009)

Nicht sauer werden,

das sagtest du bereits aber Semikolon als Trennzeichen wird nicht von mir gemacht,
die wird vermutlich aus der -csv Datei so gelesen.

wenn zwischen zwei Wörtern mehrere Tabellen leer sind wird es als Semikolon gekennzeichnet.

HILFE


----------



## deepthroat (3. Juni 2009)

celloman hat gesagt.:


> Nicht sauer werden,
> 
> das sagtest du bereits aber Semikolon als Trennzeichen wird nicht von mir gemacht,
> die wird vermutlich aus der -csv Datei so gelesen.
> ...


Leute, Hände weg von Drogen.



> Can I use my own separators and quote characters?
> 
> Yes. There are constructors that cater for supplying your own separator and quote characters. Say you're using a tab for your separator, you can do something like this:
> 
> CSVReader reader = new CSVReader(new FileReader("yourfile.csv"), '\t');


Gruß


----------



## celloman (3. Juni 2009)

wie wäre es wenn du dein blödes Argument für dich hälts.


----------



## deepthroat (3. Juni 2009)

celloman hat gesagt.:


> wie wäre es wenn du dein blödes Argument für dich hälts.


Ich soll mein Argument für mich halten?!  Ich lach dich gleich kaputt...


----------



## celloman (3. Juni 2009)

Dann lach dich kaputt,

hoffentlich vereckst du nicht dabei.

Bist aber ziemlich arugant.


----------



## deepthroat (3. Juni 2009)

celloman hat gesagt.:


> Dann lach dich kaputt,
> 
> hoffentlich vereckst du nicht dabei.
> 
> Bist aber ziemlich arugant.


Find ich eigentlich nicht. Aber vielleicht kann ich es mir leisten... ;-]

Irgendwie ist dir aber auch nicht zu helfen. Ich habe wiederholt gesagt wo der Fehler ist und was du prinzipiell machen mußt. Du bist überhaupt nicht darauf eingegangen.  

Offenbar hast du auch nicht die Dokumentation gelesen die ich wiederholt erwähnt habe. Dazu kamen keine Rückfragen o.ä. so dass man sich fragen kann, ob dir irgendwie der intellektuelle Zugang zu der ganzen Sache fehlt oder du einfach nur zu faul bist mal selbst etwas Gehirnschmalz zu investieren.

Wobei ich dir bereits den relevanten Ausschnitt und Codeschnipsel gepostet hab. Trotzdem jammerst du immer nur das es nicht geht... *kopfschüttel*

Gruß


----------



## celloman (4. Juni 2009)

Trotzdem kannst du deine nicht schönen Argumente für dich behalten.

Darunter verstehe ich nur Arroganz .

Nicht jeder kann alles verstehen,

Wenn ich es nicht versucht hätte, hätte ich nicht gesagt das es nicht funktioniert.


----------



## deepthroat (4. Juni 2009)

*[OT] AW: csv Bibliothek*



celloman hat gesagt.:


> Nicht jeder kann alles verstehen,


Das stimmt. Arabisch kann ich z.B. äußerst schlecht verstehen. 


celloman hat gesagt.:


> Wenn ich es nicht versucht hätte, hätte ich nicht gesagt das es nicht funktioniert.


Ja, du hast sicherlich dein Bestes gegeben indem du den Code von der Seite kopiert und mit deiner Eingabedatei ausprobiert hast. Überraschenderweise hat es nicht funktioniert... :suspekt: 

Auch nachdem ich dich auf die entsprechende Stelle in der Doku hingewiesen hab, hat es nicht funktioniert. Weil du es nicht gelesen hast.

Auch nachdem ich den relevanten Beispielcode (bestehend aus einer Zeile) gepostet hab, hat es nicht funktioniert. Weil du es nicht gelesen hast.

Darunter verstehe ich Ignoranz.

Gruß


----------



## celloman (4. Juni 2009)

Natürlich habe ich dein Beispielcode gelesen und ausprobiert,

Ignoranz würde ich nicht sagen.
Die Diskusion bringt mich auch nicht weiter,

Kindergarten diese Diskusion mit dir.


----------



## deepthroat (4. Juni 2009)

*[OT] AW: csv Bibliothek*



celloman hat gesagt.:


> Natürlich habe ich dein Beispielcode gelesen und ausprobiert,


Da liegt vermutlich auch das Problem. Du hast es ausprobiert. Aber du hast nicht nachgedacht. Falls du irgendwas nicht verstanden hast wäre eine normale Reaktion gewesen:


> Ok, ich hab jetzt das richtige Trennzeichen nach der Anleitung verwendet, So sieht mein Code jetzt aus:
> 
> ```
> ...
> ...


Mit dir allerdings fand eigentlich überhaupt keine Kommunikation statt.


celloman hat gesagt.:


> Die Diskusion bringt mich auch nicht weiter,


Ja, ich hab die Hoffnung bereits vor längerer Zeit aufgegeben. Obwohl ich grundsätzlich eher optimistisch bin.


celloman hat gesagt.:


> Kindergarten diese Diskusion mit dir.


Das Niveau scheint dir aber noch zu hoch zu sein. 

Gruß


----------



## celloman (4. Juni 2009)

Da hast Recht, mich in deine Niveau Aroganz hinabzusetzen.

Ich würde eher sagen, dass du ein Pessimist bist, statt Optimist.


----------



## hammet (4. Juni 2009)

Ich würde sagen, ihr konzentriert euch auf das Wesentliche, die Lösung des Problems des Threaderstellers.
Eure Diskussion hat hier nichts zu suchen.

Allerdings muss ich deepthroat in einigen Punkten Recht geben, von dir celloman kommt wenig Reaktion und wenige Informationen. Die Leute im Forum wollen helfen, aber dazu brauchen sie möglichst viele Informationen. "Das geht nicht" hilft keinem weiter, es werdne die Ausgaben, Fehlermeldungen etc (und auch eigenener  Quellcode) benötigt um dir bei der Problemlösung zu helfen.


----------



## deepthroat (4. Juni 2009)

celloman hat gesagt.:


> Da hast Recht, mich in deine Niveau Aroganz hinabzusetzen.
> 
> Ich würde eher sagen, dass du ein Pessimist bist, statt Optimist.


Ach, wie vortrefflich könnte ich mit dir noch weiter diese kurzweilige, gleichwohl amüsante Unterhaltung führen... :suspekt:

Aber damit dieses leidige Thema endlich mal beendet ist:

```
import au.com.bytecode.opencsv.CSVReader;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;


public class Main {

	public static void main(String[] args) throws FileNotFoundException, IOException {
		CSVReader reader = new CSVReader(new FileReader("testdatei.csv"), ';');
		String [] nextLine;

		while ((nextLine = reader.readNext()) != null) {
			// nextLine[] is an array of values from the line
			System.out.println(nextLine[0] + ' ' + nextLine[1] + " etc...");
		}
	}
}
```
Eingabedatei:

```
"4G8_800_415____0210_A01_0001_L";"Widerstandspunktschweissen";"2314;10";"-850;26";"208;00";birne; Banane;
"4G8_800_415____0210_A01_0001_R";"Widerstandspunktschweissen";"2314;10";"850;26";"208;00";birne; Banane;
"4G8_800_415____0210_A01_0002_L";"Widerstandspunktschweissen";"2294;20";"-852;06";"156;11";birne; Banane;
"4G8_800_415____0210_A01_0002_R";"Widerstandspunktschweissen";"2294;20";"852;06";"156;11";birne; Banane;
"4G8_800_415____0210_A01_0003_L";"Widerstandspunktschweissen";"2276;11";"-853;80";"106;03";birne; Banane;
"4G8_800_415____0210_A01_0003_R";"Widerstandspunktschweissen";"2276;11";"853;80";"106;03"birne; Banane;
```
Ausgabe:

```
4G8_800_415____0210_A01_0001_L Widerstandspunktschweissen etc...
4G8_800_415____0210_A01_0001_R Widerstandspunktschweissen etc...
4G8_800_415____0210_A01_0002_L Widerstandspunktschweissen etc...
4G8_800_415____0210_A01_0002_R Widerstandspunktschweissen etc...
4G8_800_415____0210_A01_0003_L Widerstandspunktschweissen etc...
4G8_800_415____0210_A01_0003_R Widerstandspunktschweissen etc...
```
Gruß


----------



## celloman (5. Juni 2009)

Hallo,

eins verstehe ich nicht,

Habe seit gestern ein paar Varianten ausprobiert und bin nicht draufgekommen.
mit dem Befehl


```
System.out.println(nextLine[0]);
```
Werden alle Wete der 1. Spalte angzeigt.
Und mit Dem Befehl


```
System.out.println(nextLine[0] + ' ' + nextLine[1]
```

sollte es mir doch die Werte in der 2. Spalte auch anzeigen.


Doch leider Bekomme ich eine Fehlermeldung



```
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
	at pars.main(pars.java:31)
```



Die Zweite Spalte ist am Anfang leer,

liegt es vielleicht daran?


----------



## zeja (5. Juni 2009)

So... nun ist erstmal gut hier. 

celloman: Bitte lies dir entsprechende Bücher oder tutorials durch um die Grundlagen von Java zu erlernen. Das Forum ist nicht dafür da eben dieses zu leisten und du treibst damit nur andere Nutzer zur Verzweiflung wenn die einfachsten Sachen nicht klappen. Das bringt dich im übrigen auch nicht vorran irgendwie Code zusammen zu klauben.

Entsprechende Links findest du im Link-Thread in diesem Forum.


----------

