CSV Dateien erstellen und beschrieben?

raphusi

Grünschnabel
hallo Leute
ich habe ein Programm geschrieben in dem ich Daten in eine txt-Datei schreiben kann
ich möchte jetzt aber dass diese Datei von Excel gelesen werden kann...
kann mir da jemand helfen? es wird keine *.csv Datei erstellt...

lg Raphusi
 

raphusi

Grünschnabel
hahaha ja danke^^ das weiß ich aber auch... habe das alles versucht aber es wird trd eine ganz normale txt Datei erzeugt
:D
lg Raphusi
 

sheel

I love Asm
Eine CSV-Datei ist auch nur eine Textdatei.
Nur mit .csv statt .txt im Dateinamen
Solange kein Binärzeug in der Datei ist sollte Excel damit eigentlich auf jeden Fall zurechtkommen.
 

raphusi

Grünschnabel
naja bei csv kann ich ja sowas machen :
Name;Ater;Datum

das wird ja dann in drei Zellen gespeichert und das will ich erreichen
wie kann ich das lösen?
lg Raphusi
 

Der Wolf

Erfahrenes Mitglied
Hallo,

das kannst du auch tun, wenn die Datei eine .txt Endung hat. Die Endung schränkt ja nicht ein, was in der Datei enthalten ist. Schreibe deine Daten durch Semikolons getrennt in die gewünschte Datei, häng die Endung .csv an die Datei und öffne sie in Excel. Mehr sollte nicht nötig sein.

Gruß,
Wolf
 

sheel

I love Asm
Wie gesagt, das ist ganz normaler Text.
Eine ganz normale Zeile, wie wir sie hier auch schreiben.
Inklusive der ;

Und in eine normale Textdatei Zeilen per Java schreiben kannst du wahrscheinlich,
jetzt schreibst du eben Zeilen, in denen ; vorkommen
 

raphusi

Grünschnabel
ich hab schon danke :) habe aber ein anderes Problem mit dem einlesen
Code:
 public static void dateiBeschreiben (String endString){
		try{
			BufferedWriter b_aus = new BufferedWriter(
								   	  new OutputStreamWriter(
								   		new FileOutputStream("./Besucherliste.csv", true)
								   	  )
								   );
				String s;
				boolean weiter=true;
				String[] a = {" Firma: ","Titel: ","Vorname ","Nachname:", "Sprache: ", "Grund","Verantwortlicher  SEPD","Weitere Teilnehmer: ","Von: ", "Bis :"};
				b_aus.newLine();
				for(int i = 0 ; i < a.length ; i++){
				do{	System.out.print(a[i]);
					s = Console2.readLine();
					b_aus.write(";");
					if(s.equals(endString))
						weiter=false;
					else{
						b_aus.write(s);
					}
				}while(weiter);}
				b_aus.close();
		}catch (IOException e){
			System.out.println(e);
			e.printStackTrace();
		}
	}

wenn ich das Porgramm starte und was eingeben will kommt immer Firma solange bis ich "ENDE" eingeb hab ich das aber geatn geht er den ganzen Array normal durch.. :/ kann mir jemand sagen warum das so ist ?
lg Raphusi
 

Der Wolf

Erfahrenes Mitglied
Das liegt daran, dass du innerhalb deiner for-Schleife eine do-while Schleife eingebaut hast. Letztere inkrementiert aber nicht deine Zähl-Variable "i" die benutzt wird um auf das Feld in Array "a" zuzugreifen. Erst wenn dein Benutzer den String "endString" eingibt wird deine do-while Schleife verlassen und dann erst wird die for-Schleife weiter verwendet und "i" um eins inkrementiert.

Gruß,
Wolf

Edit: Ich denke was du eigentlich wolltest erreichts du, wenn du die Reihenfolge der Schleifen vertauschst. Also du do-while Schleife als äussere Schleife und die for-Schleife als innere Schleife.
 

raphusi

Grünschnabel
danke wäre ich selber ned draufgekommen haha:D
ich möchte hald dass am Bildschirm steht: Firma: // dann wartet er auf meine Eingabe
dann : Titel : //dann wartet er auf meine Eingabe usw...
lg Raphi