Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Proletarier will Schleife in Java schreiben und scheitert - MTN zu Hülf!

Proletarier will Schleife in Java schreiben und scheitert - MTN zu Hülf!

pismo13.04.1110:35
Meine Herren,

Java wird gerade seit 2 Tagen erlernt und bereit demnach Kopfzerbrechen aller Art!

Ich will einen kleinen DB-Parser schreiben, der unabhängig von Spaltenanzahl einen Table ausgibt (noch ohne Spaltentitel), dabei wird der komplette Inhalt eines Datensatzes in ein Array geschrieben, das später ausgegeben wird.

In der int Variable NumOfCol lass ich mir mal schön ermittelt wie viele Spalten der Table hat, möchte aber nun die Ausgabe automatisieren, da ich momentan für jede Spaltanzahl einen Teil einer IF-Abfrage schreiben muss, was sehr nervig ist.

Wäre nett wenn jemand hier helfen könnte, danke schonmal im Voraus.

PS.: Um solche leicht Off-Topic Fragen in Zukunft nicht mehr bei MTN stellen zu müssen: Kann wer ein nettes Java-Forum empfehlen?

Danke!

while(result2.next())
                {
                    int $spaltenzahl = NumOfCol;

                    if($spaltenzahl == 0)
                    {
                        felder[$xyz] = null;
                        System.out.println(felder[$xyz]);    
                    }
                    else if($spaltenzahl == 1)
                    {
                        felder[$xyz] = result2.getString(1);
                        System.out.println(felder[$xyz]);    
                    }
                    else if($spaltenzahl == 2)
                    {
                        felder[$xyz] = result2.getString(1)+"\t\t"+result2.getString(2);
                        System.out.println(felder[$xyz]);    
                    }
                    else if($spaltenzahl == 3)
                    {
                        felder[$xyz] = result2.getString(1)+"\t\t"+result2.getString(2)+"\t\t"+result2.getString(3);
                        System.out.println(felder[$xyz]);    
                    }
                    else if($spaltenzahl == 4)
0

Kommentare

pismo13.04.1111:12
So, ich bin ein wenig weitergekommen und konnte es auf das Folgende reduzieren:

while(result2.next())
                {
                    int i=0;
        
                    while(i != $anzahlderspalten)
                    {                        
                        felder[$xyz] = result2.getString(i);    
                        i++;
                    }
                    System.out.println(felder[$xyz]);


Nun muss noch das felder[$xyz] aus der Schleife, aber wie ich das wohl anstellen kann....?
0
Fabianexe
Fabianexe13.04.1111:33
Wie das felder[$xyz] aus der schleife?

Es in eine ander variable speichern oder wie?

Aber ja die schleife wie sie da ist ergibt nicht viel sinn
  felder[$xyz] = result2.getString(i);    
setzt ja felder[$xyz] immer neu bis zum zu $anzahlderspalten-1

also haste ergebniss was von wegen felder[$xyz] == result2.getString($anzahlderspalten-1)


Wenn ich dir dein ersten code ansehe wilslt du mehr was wie:
felder[$xyz] = result2.getString(0);
for(int i= 1;i < $anzahlderspalten; i++) {
   felder[$xyz] += ""\t\t"" result2.getString(i);
}




0
pismo13.04.1112:23
Fabianexe

Wenn ich dir dein ersten code ansehe wilslt du mehr was wie:
felder[$xyz] = result2.getString(0);
for(int i= 1;i < $anzahlderspalten; i++) {
   felder[$xyz] += ""        "" result2.getString(i);
}

Hallo Fabianexe, vielen Dank dass du dir die Zeit genommen hast mir zu antworten!

for(int i=1;i < $anzahlderspalten+1; i++) {
                    felder[$xyz] += result2.getString(i)+"\n";
                    }

Dank deiner Hilfe habe ich es wirklich hinbekommen, echt super!

Das ist mein Output:

null1
Stephan
Chefetage
2
Angelika
Chefetage
3
Hans
Marketing

Und das passt genau, die Testdatenbank hat drei Spalten mit drei Einträgen. Was jetzt noch super wäre wenn das "null" verschwinden würde und die einzelnen Einträge mit einer Leerzeile voneinander getrennt wären. Meine Experimente mit "\n" haben immer nur JEDE Zeile getrennt, nicht die Einträge selbst
0
dirac13.04.1112:58
Wie wäre es denn mit einem zweidimensionalen Array
felder [][]
, einem Zähler in der äußeren Schleife (z.B. zeile) und einer Zuweisung in der Art
felder [zeile][i] = result2.getString(i);
0
Fabianexe
Fabianexe13.04.1115:15
Die frage wäre wo kommt das null her?

sieht aus als würdes du ein Element ausgeben was noch nicht definiert ist also null ist.

Also scheint es vorher zu liegen wie sieht den der Teil grade ganz aus?

Was die Zeile zwischen den den einzelnen Einträgen angeht ist "\n" schon das richtige aber eben nicht in der inneren schleife(for) sondern in der äußeren(while) noch mal nen "\n" hinzufügen.
Also zumindest wenn ich dein Daten Konstrukt richtig verstanden habe.
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.