csv datei verarbeiten

guguli

Bekanntes Mitglied
Hallo zusammne,

ich hab eine csv datei die so aussieht:
1;Axel Schweiß;11K700;ax@company.com
2;Bettina Beispiel;11P100;bettyb@company.com
...
nun will ich die zeilenweise durchgehen und jede zeile aufspliten nach jedem Semikolon.

kann mir einer einen Tipp oder einen beispielcode geben.

THX
 
Such mal nach "Java read file line by line" und schau dir mal die Methode String.split() an, damit kannst du dann die Zeile am ; aufteilen.

Ich glaube es gibt von Apache eine Bibliothek die CSV Dateien verarbeiten kann.
 
so danke für die Antwort,
ich muss dazu sagen dass ich in groovy das ganze machen möchte
ich mach das bis jetzt so :

def file = "C:\\Users\\user\\Desktop\\groovyCSV.csv"

new File(file).eachLine { line ->
zeile.add(line.split(","))
}
das ergebnis davon ist dann :
[["1;Axel Schweiß;11K700;ax@company.com"], ["2;Bettina Beispiel;11P100;bettyb@company.com"],...]


ich will jetzt hingehen und nur diesen teil ;11K700; überprüfen.

wie kann ich den string zwischen 2ten und 3ten Semikolon abspeichern??
 
Ok, das ist natürlich noch einfacher. Splite einfach mit ; anstatt , und suche dann den Index mit dem zu zugreifen kannst.

Java:
def file = "C:\\Users\\user\\Desktop\\groovyCSV.csv"

def zeilen = []
new File(file).eachLine { line ->
zeilen.add(line.split(";")) 
}

zeilen.forEach { ziele ->
  if( zeile.length > 1 ){
    println ziele[2]
  }
}

PS: bitte nutz nächstes Mal den Code Block um deine Code zu Posten. Macht es einfacher zu lesen ^^
 
Vielen Dank.

Eine Frage habe ich noch!

ICh hab ein String "Axel schweiß", nun möchte die beide string vertauschen. so dass ich am ende:
schweiß, Axel raus kommt.
Wie kann ich das schnell in groovy machen??
Gruß
 
Moin,

keine Ahnung, was Dein Groovy ist, aber das ist davon auch unabhängig !!
Nimm' bspw. den String, splitte ihn über das Blank und vertausche dann die beiden Teile - etwas in einen neuen String or whatelse ...

Gruß Klaus
 
Hi danke, ich hab das so gelöst:
Code:
 def nachname=name.get(i).substring(name.get(i).indexOf(" ")+1,name.get(i).size())   
  def vorname= name.get(i).substring(0, name.get(i).indexOf(" "))
[\CODE]
 
Eine letzte Frage:
Ich habe eine Liste von Strings, die ich nach Alphabet sortieren will.
ich hab das mit compareTo versucht. Das klappt aber nicht.
Code:
for(int l=0; l< ausgewählte.size()-1;l++){
  for(int j=l+1; j< ausgewählte.size();j++){
  if(email.get(l).compareTo(email.get(j))<0){
  sortierteAusgewählte.add(ausgewählte.get(l))
  }
  }
}
[\CODE]
kann mir einer nen Tipp geben?
Danke
 
ich vergleiche ja den ersten String mit dem rest und den zweiten mit dem Rest usw.
des wegen ja j=l+1.

Ich bekomme keine Fehlermeldung sondern die sortierung klappt nicht.
also ich habe [ax, niko, hermann, martin, donald]
ich wil die nach alphabet sortiert haben in:

[ax, donald, hermann, martin, niko]
 
dnake, das war sehr gut.

gibt es auch ne methode womit ich sowas sortieren kann?
["1, Axel Schweiß, 11K700, ax@company.com"]
["5, Niko Laus, 11K700, niko@company.com"]
["9, Hermann Hermann, 11k700, hermann@company.com"]
["13, Martin Ichbinder, 11K700, martin@company.com"]
["17, Donald Duck, 11K700, donald@company.com"]
die sind meine listen elemente und ich möchte die nach deren Email adressen sortiere.
also sowas wie
liste.sort(email)

Gibt es sowas???
 

Zurück
Oben