csv Datei spliten..mit java

el_paso

Grünschnabel
hallo allerseit,

ich versuche ein csv datei mit der Format

Z11 Z12 Z13 Z14 Z15 Z16
Z21 Z22 Z23 Z24 Z25 Z26
. ..................................
....................................
Zn1 Zn2 Zn3.............Zn6

zu lesen und daraus bestimmte Spalten zu kopieren und in einem outputfile zu schreiben.

dafür habe ich ein splitfunktion(mit switch() ) die mir helfen sollte mein stringbuffer wortweisse zu zerlegen...leider klapp es nur dür ein Zeile..ich komme irgendwie nicht es für den ganz datei zu tun ..bitte bitte Hilfe.

Output file :

Z11 Z13 Z16
Z21 Z23 Z26
. ..................
....................
Zn1 Zn3..Zn6

ps. vorschlag ein klein bzw pseudo-kode wäre cool .

Danke im voraus.
 
Hi,

ich unterstell dir mal du hast nen String-Array zeile[], wo alle Zeilen der Quelldatei drin stehen. Und ich geh auch davon aus, dass das Semikolon das Trennzeichen zwischen den Spalten ist. Ausserdem hast du nen String, in dem alle Selektierten Spalten stehen, also das, was du mit der Swich Funktion machst. Wenn du also die Spalten 1, 3 und 5 selektiert hast, sieht der String so aus:

Code:
Class ... {
  private String selektierteSpalten;

//Swich Funtkion....
  selektierteSpalten = "1,3,5";
...
//ende Swich Funktion
..

// Funktion die Output raussucht
String outputString = ""; 
for(int i=0; i<zeile.length; i++){
  String aktuelleZeile = zeile[i];
  StringtTokenizer zeilenTokenizer = new StringTokenizer(aktuelleZeile,";"); 
  int k = 0;
  while(zeilenTokenizer.hasMoreTokens()){
  k++;  
  if(selektierteSpalten.indexOf(""+k>=0){ 
    outputString += zeilenTokenizer.nextToken().toString;
  } else{
    zeilenBuffer.nextToken();
  }
}
... // hier den OutputString in die neue Datei schreiben

Sorry hab grade keine IDE hier, kann das also nicht testen, aber so sollte es funktionieren. Falls du es so macht, brauchst du sogar in deiner Swich-Funktion nochnichtmal ein Swich :) Allerdings funktioniert das nur solange du nicht mehr als 9 Spalten in einer Zeile hast, da indexOf sonst murks macht. Weil wenn du prüfst, ob Spalte 1 selektiert ist, wird er ja sagen, wenn er ne 11, 12 oder 21 findet...
 
Zuletzt bearbeitet:
Re: csv Datei spliten..mit java Danke

Hallo ,
wollte mich nur, selbst wenn so spät beim alle für die mehrere Hilfe bedanken.
Cool waren die Tipps habt ihr gemacht.
Grüsse.
el_paso.
 
Zurück