コード例 #1
0
        /*
         * ################################################################################
         */
        private static bool exportTextLernFabrik(clsFragenKatalog pFragenKatalog, clsLernFrabrik pLernFrabrik, int pExportModus, String pDateiName, bool pKnzExportiereAntworten, bool pKnzExportiereKorrekteAntworten, bool pKnzExportiereFalscheAntworten, bool pKnzExportiereAntwortBezeichnung, bool pKnzAntwortReihenfolgeUmstellen)
        {
            clsStringArray lb_reihenfolge = new clsStringArray();

            lb_reihenfolge.addString("000000000000000000000000Dummyzeile");

            clsFrage temp_frage          = null;
            String   string_datei_inhalt = "";

            string_datei_inhalt += "Export Abfrage Sitzung " + DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss") + " - " + pFragenKatalog.getDateiName() + NEW_LINE;

            bool fkt_ergebnis         = true;
            int  index_fragen_katalog = 0;
            int  index_lern_fabrik    = 0;

            /*
             * While-Schleife ueber alle Fragen der Lernfabrik
             */
            while (index_lern_fabrik < pLernFrabrik.getAnzahlFragen())
            {
                /*
                 * Bestimmung: Index Fragenkatalog
                 *
                 * Es gibt 3 unterschiedliche Exportarten:
                 * - alle korrekt beantworteten Fragen
                 * - alle falsch beantworteten Fragen
                 * - alle Fragen
                 *
                 * Je nach Exportmodus wird die entsprechende Funktion in der Lernfabrik aufgerufen,
                 * welche den Index der naechsten zu exportierenden Frage ermittelt.
                 */
                if (pExportModus == EXPORT_LERN_FABRIK_KORREKT)
                {
                    index_fragen_katalog = pLernFrabrik.getAbfrageIndexKorrekt(index_lern_fabrik);
                }
                else if (pExportModus == EXPORT_LERN_FABRIK_FALSCH)
                {
                    index_fragen_katalog = pLernFrabrik.getAbfrageIndexFalsch(index_lern_fabrik);
                }
                else
                {
                    index_fragen_katalog = pLernFrabrik.getAbfrageIndex(index_lern_fabrik);
                }

                // System.Console.WriteLine(  "index_fragen_katalog =>" + index_fragen_katalog + "<  index_lern_fabrik =>" + index_lern_fabrik + "<" );

                /*
                 * Pruefung: Index im Fragenkatalog vorhanden ?
                 *
                 * Der Index fuer die Frage aus dem Fragenkatalog muss groesser gleich 0 sein.
                 *
                 * Ist der Index kleiner als 0, wird nichts exportiert.
                 */
                if (index_fragen_katalog >= 0)
                {
                    try
                    {
                        /*
                         * Aus dem Fragenkatalog wird die Frage am ermittelten Index geholt.
                         */
                        temp_frage = pFragenKatalog.getIndex(index_fragen_katalog);

                        /*
                         * Ist eine Frage vorhanden, wird diese exportiert.
                         */
                        if (temp_frage != null)
                        {
                            string_datei_inhalt += getFrageExportString(temp_frage, NEW_LINE, pKnzExportiereAntworten, pKnzExportiereKorrekteAntworten, pKnzExportiereFalscheAntworten, pKnzExportiereAntwortBezeichnung, pKnzAntwortReihenfolgeUmstellen);

                            lb_reihenfolge.addString(fkString.right("000000000000000000000" + (knz_use_lfd_nr ? temp_frage.getLfdNummer() : temp_frage.getNummer()), 20) + getKorrektStringFrageX(temp_frage));
                        }
                    }
                    catch (Exception err_inst)
                    {
                        Console.WriteLine("Fehler: errExportTextLernFabrik\n" + err_inst.Message + "\n\n" + err_inst.StackTrace);
                    }
                }

                /*
                 * Es wird der Index fuer die Lernfabrik um eins erhoeht und mit der
                 * naechsten Frage aus der Lernsitzung weitergemacht.
                 */
                index_lern_fabrik++;
            }

            /*
             * Erstellung des Loesungsbogens
             * Es wird die Funktion fuer die Erstellung des Loesungsbogens aufgerufen.
             */
            bool pKnzErstelleLoesungsbogen = true;

            string_datei_inhalt += getSringLoesungsbogen(pKnzErstelleLoesungsbogen, lb_reihenfolge);

            /*
             * Stringarray mit den Daten fuer den Loesungsbogen "clearen"
             * und anschliessend auf "null" stellen.
             */
            lb_reihenfolge.clear();

            lb_reihenfolge = null;

            /*
             * Der erstellte Fragenkatalog wird in der Datei gespeichert
             */
            System.IO.File.WriteAllText(pDateiName, string_datei_inhalt);

            return(fkt_ergebnis);
        }
コード例 #2
0
        private static String getSringLoesungsbogen(bool pKnzErstelleLoesungsbogen, clsStringArray pStringArrayLoesungsbogen)
        {
            String string_loesungsbogen = "";

            try
            {
                if (pKnzErstelleLoesungsbogen)
                {
                    /*
                     * Sortierung Loesungsbogen
                     * Die exportierten Fragen muessen nicht in der Reihenfolge des Fragenkataloges
                     * kommen. Somit ergibt sich das Problem, dass der Loesungsbogen auch nicht
                     * in einer sortierten Reihenfolge erstellt worden ist.
                     *
                     * Der Loesungsbogen wird hier aufsteigend sortiert.
                     */
                    pStringArrayLoesungsbogen.startSortierungAufsteigend();

                    /*
                     * Die ersten 21 Stellem im Loesungsbogen sind nur fuer die Sortierung
                     * aufgenommen worden. Diese Zeichen werden hier geloescht.
                     */
                    pStringArrayLoesungsbogen.doItSubstring(21);

                    /*
                     * Spaltenbreite 1
                     * Jede Frage im Loesungsbogen vereinamt eine Anzahl von Spalten.
                     * Das ist die Fragennummer, zuzueglich der Trennzeichenbreite und
                     * der Anzahl der maxmimal vorhandenen Antworten.
                     */
                    int spalten_breite_1 = ANZ_STELLEN_FRAGENNR + STR_TRENN_STRING.Length + m_max_anzahl_vorhandene_antworten;

                    /*
                     * Anzahl der Fragen in einer Reihe des Loesungsbogens.
                     * Die Breite des Loesungsbogens durch die Spaltenbreite 1.
                     */
                    int lb_anzahl_spalten = Convert.ToInt32(VORGABE_ANZ_STELLEN / spalten_breite_1);

                    /*
                     * Anzahl der benoetigten Zeilen
                     * Die Anzahl der benoetigten Zeilen ist gleich der Anzahl der Fragen dividiert
                     * durch die Anzahl der Loesungsbogenspalten (lb_anzahl_spalten). Das Ergebnis
                     * der Division wird um 0.9 erhoeht, um auf die naechsthoehere Zahl zu kommen.
                     * Dieses Ergebnis wird mit CINT auf den Ganzzahlteil beschraenkt.
                     *
                     * Die Anzahl der Fragen ist hier gleich der Anzahl der im Loesungsbogen
                     * enthaltenen Fragen. Dieses kann variieren und ist nicht gleich der
                     * Anzahl der Fragen aus der Lernfabrik.
                     *
                     * Die Anzahl der Fragen ergibt sich aus der Anzahl der gespeicherten Loesungen.
                     * (= Anzahl der Zeilen aus lb_reihenfolge)
                     */
                    int lb_anzahl_zeilen = Convert.ToInt32((pStringArrayLoesungsbogen.getAnzahlStrings() / lb_anzahl_spalten) + 0.9);

                    int lb_zeilen_zaehler  = 1;
                    int lb_spalten_zaehler = 1;

                    String lb_ausgabe_string = "";
                    String akt_string        = null;

                    string_loesungsbogen += NEW_LINE;

                    string_loesungsbogen += NEW_LINE + NEW_LINE + "Loesungsbogen: (" + pStringArrayLoesungsbogen.getAnzahlStrings() + ")" + NEW_LINE;

                    while ((lb_zeilen_zaehler <= lb_anzahl_zeilen))
                    {
                        lb_ausgabe_string = "";

                        lb_spalten_zaehler = 1;

                        while (lb_spalten_zaehler <= lb_anzahl_spalten)
                        {
                            akt_string = pStringArrayLoesungsbogen.getString(lb_zeilen_zaehler + (lb_spalten_zaehler - 1) * lb_anzahl_zeilen);

                            if (akt_string != null)
                            {
                                lb_ausgabe_string += akt_string;
                            }

                            lb_spalten_zaehler = lb_spalten_zaehler + 1;
                        }

                        string_loesungsbogen += lb_ausgabe_string + NEW_LINE;

                        lb_zeilen_zaehler = lb_zeilen_zaehler + 1;
                    }
                }
            }
            catch (Exception err_inst)
            {
                Console.WriteLine("Fehler: z\n" + err_inst.Message + "\n\n" + err_inst.StackTrace);
            }

            return(string_loesungsbogen);
        }
コード例 #3
0
        /*
         * ################################################################################
         */
        private static bool exportTextFragenKatalog(clsFragenKatalog pFragenKatalog, String pDateiName, bool pKnzExportiereAntworten, bool pKnzExportiereKorrekteAntworten, bool pKnzExportiereFalscheAntworten, bool pKnzExportiereAntwortBezeichnung, bool pKnzAntwortReihenfolgeUmstellen)
        {
            clsStringArray lb_reihenfolge = new clsStringArray();

            lb_reihenfolge.addString("000000000000000000000000Dummyzeile");

            clsFrage temp_frage = null;

            String string_datei_inhalt = "";

            string_datei_inhalt += "Export Abfrage Sitzung " + DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss") + " - " + pFragenKatalog.getDateiName() + NEW_LINE;

            bool pKnzErstelleLoesungsbogen = true;

            bool fkt_ergebnis = true;

            int index_fragen_katalog = 0;

            /*
             * While-Schleife ueber alle Fragen im Fragenkatalog.
             */
            while (index_fragen_katalog < pFragenKatalog.getAnzahlFragen())
            {
                try
                {
                    /*
                     * Frage am aktuellem Index aus dem Fragenkatalog holen.
                     */
                    temp_frage = pFragenKatalog.getIndex(index_fragen_katalog);

                    /*
                     * Pruefung: Frage gesetzt ?
                     *
                     * Ist an der aktuellen Indexpositon keine Frage vorhanden, ist das Ergebnis
                     * der Funktion "getIndes" gleich "null". In so einem Fall wird mit dem
                     * naechsten Index weiter gemacht.
                     *
                     * Ist eine Frage vorhanden, wird diese exportiert.
                     */
                    if (temp_frage != null)
                    {
                        string_datei_inhalt += getFrageExportString(temp_frage, NEW_LINE, pKnzExportiereAntworten, pKnzExportiereKorrekteAntworten, pKnzExportiereFalscheAntworten, pKnzExportiereAntwortBezeichnung, pKnzAntwortReihenfolgeUmstellen);

                        lb_reihenfolge.addString(fkString.right("000000000000000000000" + (knz_use_lfd_nr ? temp_frage.getLfdNummer() : temp_frage.getNummer()), 20) + getKorrektStringFrageX(temp_frage));
                    }
                }
                catch (Exception err_inst)
                {
                    Console.WriteLine("Fehler: errExportTextFragenKatalog\n" + err_inst.Message + "\n\n" + err_inst.StackTrace);
                }

                /*
                 * Index der Fragen im Fragenkatalog um eins erhoehen und mit
                 * der naechsten Frage weitermachen.
                 */
                index_fragen_katalog++;
            }

            /*
             * Erstellung des Loesungsbogens
             * Es wird die Funktion fuer die Erstellung des Loesungsbogens aufgerufen.
             */
            string_datei_inhalt += getSringLoesungsbogen(pKnzErstelleLoesungsbogen, lb_reihenfolge);

            /*
             * Stringarray mit den Daten fuer den Loesungsbogen "clearen"
             * und anschliessend auf "null" stellen.
             */
            lb_reihenfolge.clear();

            lb_reihenfolge = null;

            /*
             * Der erstellte Fragenkatalog wird in der Datei gespeichert
             */
            System.IO.File.WriteAllText(pDateiName, string_datei_inhalt);

            return(fkt_ergebnis);
        }