eine CSV Datai mit Hilfe von Java lesen und ausführen

gazale_m

Mitglied
Ich habe eine csv Datei der, die Namen von verschiedenen Programmen hält.
z.b. 0008.qft
Ich will mit Hilfe von Java diese Name lesen und die angehörige Programm ausführen. Was muss ich für Code benutzen?:confused:
 
Hallo,

den Code den du schreibst, den musst du benutzen.
Erstmal 2 Punkte.

1. Wenn du so einen Beitrag schreibst, glaube ich nicht, dass dir sehr viele helfen werden. Da es nicht so aussieht, als hättest du dir schon mal Gedanken gemacht.

2. Hättest du die Foren-Suche bemüht und dir 5 Minuten arbeit gemacht, hättest du ein paar mal Vorschläge gefunden, welche APIs man mit Java nutzen kann. Mach das erstmal, wenn du dann immer noch nichts gefunden hast, was ich nicht glaube, dann werde ich dir helfen.

MFG

zEriX
 
vielen Dank für deine Schnelle Antwort!:confused:

Ich weiss das ich länger suchen muss aber ich hätte die Zeit nicht und ich bin auch keine richtige java programmiererin. Ich wollte nur mein Boss ganz schnell zeigen dass sowas auch mit hilfe von Java gehen würde!!
 
Das war ja nicht böse gemeint, aber wenn jeder so Fragen stellen würde, wären die die antworten nur noch Quelltexte am schreiben.

Die Programmnamen kann man auf viele Arten auslesen. es gibt APIs dafür (z.b. OpenCSV) . Die Programme ausführen könnte man zum Beispiel mit
Code:
Runtime.getRuntime().exec(/*Programm*/);
.


MFG

zEriX
 
ok. Ich habe ein Programm geschrieben der den Namen von Programm von CSV Datei lesen soll.Aber es gibt mir ein "CSVReader cannot be resolved to a type" Exception. Was habe ich da falsch gemacht?

public class reader {


public static void main(String[] args) {

CsvReader reader = new CsvReader("test.csv");
reader.readHeaders();
while (reader.readRecord())
{
String ID = reader.get("ID");
String qft = reader.get("qft_test");

}
reader.close();
}


}
 
Du brauchst natürlich eine Klasse die so heißt. Ich denke ja mal, dass du eine andere API nutzt (OpenCSV?) falls ja dann musst du auch die import-Anweisungen haben, bzw wenn du eclipse benutzt das Jar-Package auch dem Classpath hinzufügen.

MFG

zEriX
 
es scheint die opencsv api zu sein...aber schau dir z.B. mal das Beispiel auf deren Seite an, wie du mit der Api umgehen musst.:rtfm:
 
Nimm die Methoden sind zwar nicht schön geschrieben da schon aus jungen Jahren aber funktionieren super.
Denke mal sind selbsterklärend wenn nicht frag einfach nach.

Code:
public class NewMain {
    
    public NewMain() throws Throwable{
        java.util.Vector<java.util.Vector> buffer=getCase("my.csv");
        
        for(java.util.Vector<String> i : buffer){
            for(String entry : i){
                System.out.print(entry+";");
            }
            System.out.println("");
        }            
    }
    
    
    public static void main(String[] args)throws Throwable {
       new NewMain();
    }
    
    //sammelt alle Zeilen in einem Vector
    private java.util.Vector<java.util.Vector> getCase(String dateiname)throws Throwable{
        String buffer;
        java.util.Vector<java.util.Vector> ret=new java.util.Vector<java.util.Vector>();
        java.io.BufferedReader reader=new java.io.BufferedReader(new java.io.FileReader(dateiname));
        while(null!=(buffer=reader.readLine())){
            ret.addElement(collect(buffer));
        }
        return ret;
    }
    //sammelt die Token einer ausgelesenen Zeile in einem Vector    
    private java.util.Vector<String> collect(String entry)throws Throwable{
        java.util.Vector<String> collection=    new java.util.Vector<String>();
        String buffer=                          "";
        java.util.StringTokenizer t=            null;
        boolean trigger=                        false;
        
        for(int i=0;i<entry.length();i++){            
            if((i==0&&entry.charAt(i)==';')){
                buffer="X"+entry.charAt(i);
            }else if((i==(entry.length()-1)&&entry.charAt(i)==';')){
                buffer=buffer+entry.charAt(i)+"X";
            }else if(entry.charAt(i)==';'&&entry.charAt(i+1)==';'){
                buffer=buffer+entry.charAt(i)+"X";
            }else buffer=buffer+entry.charAt(i);            
            t=new java.util.StringTokenize(buffer,";");                                                                        
        }                        
        
        int tokrnanzahl=t.countTokens();    
        for(int m=0;m<tokrnanzahl;m++){
            String h=t.nextToken();                
            if(h.equals("X"))collection.addElement(null);            
            else collection.addElement(h);                
        }
        
        return collection;
    } 
}
 
Zurück