Enrico: Array in Tabellenform zusammengefasst ausgeben

Hallo,

ich stecke gerade an einem programmiertechnischen Problem fest bzw. vielmehr an der Logik, wie ich folgendes Vorhaben mit Javascript am Elegantesten umsetzen kann:

Ich lese eine Textdatei in einen versteckten frame ein und erzeuge anschliessend ein Array aus den einzelnen Zeilen dieser Textdatei:

<iframe id="Rohdaten" src="txt/Eintraege.txt" frameborder="0"></iframe>

Rohdaten = Rohdaten.contentWindow.document.body.innerHTML;
     Rohdaten = Rohdaten.replace(/<[^>]*>/i, "");
     Rohdaten = Rohdaten.replace(/&quot;/i,  """);

var Einzelne_Eintraege = Rohdaten.split("\n");
     Anzahl_Eintraege       = Einzelne_Eintraege.length;

for (var i = 0; i < Anzahl_Eintraege; i++)
     {
        var Spalte = Einzelne_Eintraege[i].split("|");

Eintrag[i]             = new Array();
        Eintrag[i]["Name"]     = Spalte[0];
        Eintrag[i]["Datum"]    = Spalte[1];
        Eintrag[i]["Uhrzeit"]  = Spalte[2];
        Eintrag[i]["Inhalt"]   = Spalte[3];
        Eintrag[i]["eMail"]    = Spalte[4];
        Eintrag[i]["Homepage"] = Spalte[5];
     }

Das eben erzeugte Array "Eintrag" will ich nun formatiert in Tabellenform ausgegeben. Hierbei sollen jeweils 10 Array-Elemente, respektive der verbleibende Rest bis "Anzahl_Eintraege", in einer Tabelle zusammengefasst werden.

Und genau an dieser Umsetzung hänge ich, weil ich nicht weiß, wie ich dieses Zusammenfassen am Elegantesten umsetzen kann.

Dies ist mein derzeitiger Ansatz (Klassenzuweisungen zur Formatierung habe ich hier jetzt weggelassen):

var Tabelle    = "";
     var Zaehler    = 1;
     var Umschalter = 0;

for (var i = 0; i < Anzahl_Eintraege; i++)
     {
        if (Umschalter == 0)
        {
           if (i == 0)
           {
              Tabelle += '<table id="Seite_1">';
           }
           else
           {
              Tabelle += '<table id="Seite_' + i + '" style="display:none;">';
           }
        }

Tabelle += '<tr>'
                + '<td></td>';
                + '</tr>';
                + '<tr>';
                + '<td>' + Eintrag[i]["Inhalt"] + '</td>';
                + '</tr>';
                + '<tr>';
                + '<td></td>';
                + '</tr>';
                + '<tr>';
                + '<td>' + Eintrag[i]["Name"] + '<br>' + Eintrag[i]["Datum"] + '<br>' + Eintrag[i]["Uhrzeit"] + ' Uhr</td>';
                + '</tr>';

if (Umschalter == 0)
        {
           Tabelle   += '</table>';
           Umschalter = 1;
        }

Zaehler += 1;

if ((Zaehler == 10) || (i + 1 == Anzahl_Eintraege))
        {
           Umschalter = 0;
        }
     }

V.a. weiß ich nicht, wie ich bei der letzten if-Abfrage die oder-Prüfung gestalten soll, um die Variable "Umschalter" wieder auf 0 zu setzen, für den Fall, dass eben nicht mehr 10 Zeilen bis zum Erreichen der Anzah-Eintraege zur Verfügung stehen.

Ich hoffe, ihr versteht, was ich meine, und könnt mir helfen.

Vielen Dank und Gruß
Enrico

  1. Grüße,
    ich bin zu fau das genau auseinanderzunehmen - also rate ich mal intuitiv^^ falls umschalter dazu da ist den schließenden tag der tabelle zu setzen, zieh den aus der schleife.
    mal sehe ob ich morgen facepalme....
    MFG
    bleicher

    --
    __________________________-

    FirefoxMyth
    1. Grüße zurück,

      falls umschalter dazu da ist den schließenden tag der tabelle zu setzen

      Diese Variable soll die Tabelle einleiten und abschließen, falls Zaehler auf 10 steht und damit 10 Array-Elemente zusammengefasst sind ODER ... Das Problem mit der oder-Abfrage.

      Gruß
      Enrico

      1. Grüße,
        du willst das ganez in 10er blöcke scheniden?
        also eigene tabelel je 10 einträge?
        i%10 sei mit dir.
        MFG
        bleicher

        --
        __________________________-

        FirefoxMyth
        1. Hallo,

          du willst das ganez in 10er blöcke scheniden?

          Erstmals ja, aber wie integriere ich die zwei, drei, vier,... neun letzten Array-Elemente in mein Konstrukt, die eben keinen 10er-Block mehr ergeben?

          Dies ist mein Problem neben der höchstwahrscheinlich umständlichen bzw. unschönen Formulierung.

          Gruß
          Enrico

          1. Grüße,
            wenn i<array.length und !i%10, +="</table><table>"
            wenn i=ding.length, +=</table> und break;
            MFG
            bleicher

            --
            __________________________-

            FirefoxMyth
          2. Hey Enrico,

            du willst das ganez in 10er blöcke scheniden?

            Erstmals ja, aber wie integriere ich die zwei, drei, vier,... neun letzten Array-Elemente in mein Konstrukt, die eben keinen 10er-Block mehr ergeben?

            das hat bleicher Dir doch schon geschrieben. Nutze den Modulus-Operator.

            Gruß, Dennis

            1. Sorry, Themenbereich war ja JavaScript und nicht PHP. Der Modulus-Operator macht aber auch hier das gleiche. <http://de.selfhtml.org/javascript/sprache/operatoren.htm#berechnung@title=Das findest Du z.B. in der Referenz bei SelfHTML>.

              Gruß, Dennis