/* * ################################################################################ */ 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); }
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); }
/* * ################################################################################ */ 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); }