[JAVA]einzelne daten aus csv auslesen

ardiana

Mitglied
Ava

Hallo,

kann mir bitte jemand sagen wie ich einzelne Infos aus einer csv datei auslesen kann und in einer Textdatei einfügen kann....
 
Zuletzt bearbeitet:

Nebuk

PCtipp-Moderation
Teammitglied
Hallo ardiana

Wie wäre es, wenn du noch kurz erwähnst mit welcher Sprache du das machen möchtest? Geht es wieder um Java?

Falls ja, kann ich dir einen Tipp zum schreiben in eine Word Datei geben. Schau dir mal Apache POI an.

Das auslesen einer Textdatei (csv) ist eigentlich auch nicht wirklich schwierig.

Aber bevor ich oder jemand anderes noch weitere Hilfe geben kann. Wäre es sinnvoll du würdest wie erwähnt kurz sagen um welche Sprache es sich handelt.

Gruss
Nebuk
 

Nebuk

PCtipp-Moderation
Teammitglied
Wie sind die einzelnen "Felder" in der CSV Datei voneinander getrennt? Durch einen ";"?

Wenn ja, hilft dir dieses Beispiel weiter?

PHP:
// Soll eine Zeile des CSV Files darstelle, bei der die Felder durch ein ";" getrennt wurden
String tst = "Hallo Hallo; das; ist; eine; Test Hallo Test"; 
		
// Fügt die einzelnen Wörter die durch ein ";" getrennt wurden der Variabel "abc" hinzu
String[] abc = tst.split(";");
		
// Gibt die einzelnen Wörter der Reihe nach in der Konsole aus, welche durch ein ";" getrennt waren 
for (String string : abc) {
	System.out.println(string.trim()); // Trim ist um die Leerschläge am Anfang und Ende zu entfernen
}

Gruss
Nebuk
 

Nebuk

PCtipp-Moderation
Teammitglied
Ich nehme an, dass du wieder wie das letzte Mal mit Swing arbeitest?

Dann kannst du soviel ich weiss mit

PHP:
JTextField tf = new JTextField();
tf.setText("Hier steht der String den du im Textfeld anzeigen möchtest");

Möchtest du denn, dass die Trennzeichen mit angezeigt werden? Ansonsten solltest du diese doch irgenwie entfernen -> siehe Vorpost von mir.

Am besten Speicherst du die Werte des CSV Files in eine HashMap oder so, dann kannst du auf die Werte über die Spaltennamen zugreifen. Wie du das in die TreeView rein bekommst das weiss ich nicht. Das müsste ich eben kurz selber nachschauen...

Gruss
Nebuk

Edit.

So nach kurzer Suche im Netz habe ich folgendes gefunden:

PHP:
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
public class JTreeDemo
{
  public static void main( String[] args )
  {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    DefaultMutableTreeNode root = new DefaultMutableTreeNode( "Wurzel" );
    for ( int ast = 0; ast < 4; ast++ )
    {
      DefaultMutableTreeNode node = new DefaultMutableTreeNode( "Knoten " + ast );
      root.add( node );
      for ( int blatt = 1; blatt < 4; blatt++ )
        node.add( new DefaultMutableTreeNode("Blatt " + (ast*3+blatt )) );
    }
    JTree tree = new JTree( root );
    frame.add( new JScrollPane( tree ) );
    frame.pack();
    frame.setVisible( true );
    tree.getSelectionModel().addTreeSelectionListener(
      new TreeSelectionListener()
      {
        public void valueChanged( TreeSelectionEvent e )
        {
          TreePath path = e.getNewLeadSelectionPath();
          System.out.println( path );
        }
      }
    );
  }
}
Quelle: http://openbook.galileodesign.de/javainsel5/javainsel15_023.htm#Rxx747java150230400054F1F01E100
 
Zuletzt bearbeitet:

Nebuk

PCtipp-Moderation
Teammitglied
Hallo ardiana, neuer Tag gleiche Probleme? :)

Wie gesagt, ich kenne mich eigentlich mit den ganzen Swing-Elementen recht wenig aus. Speziell mit den Tree-Komponenten....

Ich nehme an, dass du den Code oben schon versucht hast, speziell das was ganz unten steht im tree.getSelectionModel().addTreeSelectionListener( ... ... ... ... );?

Da wird ja sozusagen der ganze Pfad abgefragt wo auf die einzelnen Knoten geklickt hast. Nun brauchst du diese halt nur abzufragen und entsprechend die Daten abfüllen und das Gui neu zeichnen.

Wie speicherst denn du die Daten überhaupt? Hast du eine Datenbank dafür, wenn du schreibst, dass es sich um über 3000 Einträge handelt? Welche Datenbank nutzt du? Falls du eine normale Datenbank dafür verwendest, kannst du die Abfrage doch einfach mit einem SELECT-Statement abfragen.

Gruss
Nebuk
 

Nebuk

PCtipp-Moderation
Teammitglied
Das einfügen der Werte in die Textfelder funktioniert wie ich es oben beschrieben habe. Das Problem wird wohl sein die richtigen Werte auszulesen?
 

Nebuk

PCtipp-Moderation
Teammitglied
Ich habe nun zwar nicht alles verstanden was du geschrieben hast, doch gehe ich davon aus, dass DU mich eben nicht ganz richtig verstanden hast :)

Ich meinte dass das einfügen in ein Textfeld klar sein sollte ->

PHP:
JTextField tf = new JTextField(); 
tf.setText("Hier steht der String den du im Textfeld anzeigen möchtest");
Mit der setText Methode auf dem Textfeld kannst du die Werte in das ausgewählte Textfeld einfügen.

Ist das korrekt, dass du die richtigen Daten bekommst, wenn du eine Person einer Firma auswählst? Oder erhälst du einfach "null"?
 
Oben