honolulu: Java: Parsen von CSV-Daten

Hallo Forum,

ich programmiere seit Kurzem in Java. Bin aber nicht neu in dem Thema, programmiere ein paar andere Sprachen schon seit ziemlich langer Zeit.

Ich möchte die Windows-Ausgabe von "systeminfo" geordnet ausgeben, um sie mit derselben Ausgabe anderer Maschinen vergleichen kann.
Bisher habe ich folgenden Code geschrieben:

  
String command="systeminfo /FO CSV";  
String del=",";  
  
Process p = Runtime.getRuntime().exec("cmd /c " + command);  
  
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));  
String s;  
String[][] splitArray;  
Integer c=0;  
while((s=in.readLine()) != null)  
{  
	if(s.length()!=0)  
	{  
		splitArray[c] = s.split(del);  
		c++;							  
	}  
}  

Allerdings kann ich machen was ich will. Die Zeile "splitArray[c] = s.split(del);" ruft, egal in welcher Kombination, Fehler hervor: "Type mismatch: cannot convert from String[] to String".
Wo liegt mein Denkfehler?

MfG
honolulu

  1. Servus!

    [...]
    Allerdings kann ich machen was ich will. Die Zeile "splitArray[c] = s.split(del);" ruft, egal in welcher Kombination, Fehler hervor: "Type mismatch: cannot convert from String[] to String".
    Wo liegt mein Denkfehler?

    Du willst einem Element in Deinem String Array (splitArray[c]) ein String Array zuweisen. Das kann nicht gehen. So wäre es richtig:
    splitArray = s.split(del);

    Schöne Grüße,

    Peter

    1. Stop, erst lesen, dann klugscheißen! Sorry!
      Du hast ja ein zweidimensionales Array, das sollte also passen. Allerdings ist der Fehler immer noch der selbe. An einer Stelle im splitArray kann immer nur ein String liegen, so auch an splitArray[c].
      Vielleicht findest Du eine besser geeignete Datenstruktur für Deinen Textinhalt, oder im Zweifelsfall einfach eine Liste von String[]. Dann könnte der Code so aussehen:
      List<String[]> splitData = new ArrayList<String[]>();

      // schleife
          splitData.add(string.split(del));

      Schöne Grüße,

      Peter

  2. Hi,

    String[][] splitArray;

    Du deklarierst hier ein zweidimensionales String-Array.

    splitArray[c] = s.split(del);

    obwohl das Array nicht initialisiert wurde, willst Du hier etwas reinschreiben.

    Also selbst wenn die Typen stimmen würden, würde es hier krachen.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.