/* * ################################################################################ */ public static bool startExportFbFragenKatalog(clsFragenKatalog pFrageKatalog, bool pKnzExportiereAntworten, bool pKnzExportiereKorrekteAntworten, bool pKnzExportiereFalscheAntworten, bool pKnzExportiereAntwortBezeichnung, bool pKnzAntwortReihenfolgeUmstellen) { bool fkt_ergebnis = false; /* * Pruefung: Parameter "pFragenKatalog" gleich "null" ? * * Wurde kein Fragenkatalog uebergeben, wird die Funktion mit FALSE verlassen. */ if (pFrageKatalog == null) { return(fkt_ergebnis); } /* * Pruefung: Sind Fragen vorhanden ? * * Sind im Fragenkatalog keine Fragen vorhanden, wird die Funktion mit FALSE verlassen. */ if (pFrageKatalog.getAnzahlFragen() == 0) { return(fkt_ergebnis); } /* * Letzter Dateiname * Aus der INI-Datei wird der Name der letzte Exportname geholt. * Dieser Name erscheint dann als Vorauswahl in der Dialog-Box. */ String datei_name = fkIniDatei.readIniDateiName("DATEI_NAME_EXPORT_FRAGENKATALOG"); /* * Dateifilter * Die zur Auswahl stehenden Datei-Erweiterungen werden als String initialisiert. */ String datei_filter = "TXT-Datei (*.txt)\0*.txt\0alle Dateien (*.*)\0*.*\0"; /* * Aufruf der Dateiauswahl-Dialog-Box */ //datei_name = "c:\\Daten\\fragenkatalog.txt";// fkCommonDialog.getSaveName(datei_filter, "txt", "c:\\", datei_name, "Exportdatei wählen"); datei_name = fkCommonDialog.getSaveName(datei_filter, "txt", "c:\\", datei_name, "Exportdatei wählen"); if (datei_name != null) { /* * Aufruf der Initialisierungsfunktion */ initLoesungsbogenVar(KNZ_LOESUNGSBOGEN_VERSON_1, pFrageKatalog); fkIniDatei.writeIniDateiName("DATEI_NAME_EXPORT_FRAGENKATALOG", datei_name); /* * Aufruf der Exportfunktion fuer den Fragenkatalog */ fkt_ergebnis = exportTextFragenKatalog(pFrageKatalog, datei_name, pKnzExportiereAntworten, pKnzExportiereKorrekteAntworten, pKnzExportiereFalscheAntworten, pKnzExportiereAntwortBezeichnung, pKnzAntwortReihenfolgeUmstellen); } return(fkt_ergebnis); }
/* * ################################################################################ */ private static bool exportXmlLernFabrik(clsFragenKatalog pFragenKatalog, clsLernFrabrik pLernFrabrik, int pExportModus, String pDateiName) { clsFrage temp_frage = null; String string_datei_inhalt = ""; string_datei_inhalt += "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n"; string_datei_inhalt += getStartTag(XML_TAG_FRAGENKATALOG); string_datei_inhalt += getTag(XML_TAG_FRAGENKATALOG_BEZEICHNUNG, "unbenannt"); string_datei_inhalt += getTag(XML_TAG_FRAGENKATALOG_DATUM_ERSTELLUNG, DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss")); bool fkt_ergebnis = true; int index_fragen_katalog = 0; int index_lern_fabrik = 0; while ((index_lern_fabrik < pLernFrabrik.getAnzahlFragen())) { if (pExportModus == fkExportFrageBogen.EXPORT_LERN_FABRIK_KORREKT) { index_fragen_katalog = pLernFrabrik.getAbfrageIndexKorrekt(index_lern_fabrik); } else if (pExportModus == fkExportFrageBogen.EXPORT_LERN_FABRIK_FALSCH) { index_fragen_katalog = pLernFrabrik.getAbfrageIndexFalsch(index_lern_fabrik); } else { index_fragen_katalog = pLernFrabrik.getAbfrageIndex(index_lern_fabrik); } if (index_fragen_katalog >= 0) { try { temp_frage = pFragenKatalog.getIndex(index_fragen_katalog); if (temp_frage != null) { string_datei_inhalt += getXmlFrage(temp_frage); } } catch (Exception err_inst) { Console.WriteLine("Fehler: exportXmlLernFabrik\n" + err_inst.Message + "\n\n" + err_inst.StackTrace); } } index_lern_fabrik = index_lern_fabrik + 1; } string_datei_inhalt += getEndTag(XML_TAG_FRAGENKATALOG); System.IO.File.WriteAllText(pDateiName, string_datei_inhalt); return(fkt_ergebnis); }
/** * Initialisiert die Anwendungsklasse */ public bool initAnwFragenFrager() { m_fragen_katalog = null; m_lern_fabrik = null; m_modus = MODUS_KEINE_FRAGEN_GELADEN; return(true); }
/* * ################################################################################ */ public static bool startExportXmlLernFabrik(clsFragenKatalog pFrageKatalog, clsLernFrabrik pLernFrabrik, int pExportModus) { bool fkt_ergebnis = false; if (pFrageKatalog == null) { return(fkt_ergebnis); } if (pLernFrabrik == null) { return(fkt_ergebnis); } if (pFrageKatalog.getAnzahlFragen() == 0) { return(fkt_ergebnis); } if (pLernFrabrik.getAnzahlFragen() == 0) { return(fkt_ergebnis); } /* * Letzter Dateiname * Aus der INI-Datei wird der Name der letzte Exportname geholt. * Dieser Name erscheint dann als Vorauswahl in der Dialog-Box. */ String datei_name = fkIniDatei.readIniDateiName("DATEI_NAME_EXPORT_XML_LERN_FABRIK"); /* * Dateifilter * Die zur Auswahl stehenden Datei-Erweiterungen werden als String initialisiert. */ String datei_filter = "XML-Datei ( *.xml )\0*.xml\0alle Dateien ( *.* )\0*.*\0"; /* * Aufruf der Dateiauswahl-Dialog-Box */ datei_name = fkCommonDialog.getSaveName(datei_filter, "xml", "c:\\", datei_name, "Exportdatei wählen"); if (datei_name != null) { fkIniDatei.writeIniDateiName("DATEI_NAME_EXPORT_XML_LERN_FABRIK", datei_name); fkt_ergebnis = exportXmlLernFabrik(pFrageKatalog, pLernFrabrik, pExportModus, datei_name); } return(fkt_ergebnis); }
/** * @return die Instanz fuer den Fragenkatalog */ public clsFragenKatalog getFragenKatalog() { /* * Pruefung: Instanz des Fragenkataloges vorhanden ? */ if (m_fragen_katalog == null) { /* * Ist die Instanz noch null, wird eine neue * Instanz der Klasse clsFragenKatalog erstellt und * der Membervariablen "m_fragen_katalog" zugewiesen. */ m_fragen_katalog = new clsFragenKatalog(); } return(m_fragen_katalog); }
/* * ################################################################################ */ private static void initLoesungsbogenVar(bool pKnzLoesungsbogenVersion1, clsFragenKatalog pFragenKatalog) { m_knz_loesungsbogen_version_1 = pKnzLoesungsbogenVersion1; if (m_knz_loesungsbogen_version_1) { m_loesungsbogen_antwort_a = LOESUNGSBOGEN_ANTWORT_A; m_loesungsbogen_antwort_b = LOESUNGSBOGEN_ANTWORT_B; m_loesungsbogen_antwort_c = LOESUNGSBOGEN_ANTWORT_C; m_loesungsbogen_antwort_d = LOESUNGSBOGEN_ANTWORT_D; m_loesungsbogen_antwort_e = LOESUNGSBOGEN_ANTWORT_E; m_loesungsbogen_antwort_f = LOESUNGSBOGEN_ANTWORT_F; m_loesungsbogen_antwort_g = LOESUNGSBOGEN_ANTWORT_G; m_loesungsbogen_antwort_h = LOESUNGSBOGEN_ANTWORT_H; } else { m_loesungsbogen_antwort_a = "X"; m_loesungsbogen_antwort_b = "X"; m_loesungsbogen_antwort_c = "X"; m_loesungsbogen_antwort_d = "X"; m_loesungsbogen_antwort_e = "X"; m_loesungsbogen_antwort_f = "X"; m_loesungsbogen_antwort_g = "X"; m_loesungsbogen_antwort_h = "X"; } m_max_anzahl_vorhandene_antworten = pFragenKatalog.getAnzahlMaxVorhandeneAntworten(); m_max_anzahl_korrekte_antworten = pFragenKatalog.getAnzahlMaxKorrekteAntworten(); knz_use_lfd_nr = pFragenKatalog.getKnzOriginalZustand() == false; m_loesungsbogen_antwort_a = LOESUNGSBOGEN_ANTWORT_A; m_loesungsbogen_antwort_b = LOESUNGSBOGEN_ANTWORT_B; m_loesungsbogen_antwort_c = LOESUNGSBOGEN_ANTWORT_C; m_loesungsbogen_antwort_d = LOESUNGSBOGEN_ANTWORT_D; m_loesungsbogen_antwort_e = LOESUNGSBOGEN_ANTWORT_E; m_loesungsbogen_antwort_f = LOESUNGSBOGEN_ANTWORT_F; m_loesungsbogen_antwort_g = LOESUNGSBOGEN_ANTWORT_G; m_loesungsbogen_antwort_h = LOESUNGSBOGEN_ANTWORT_H; m_einzug_frage = fkString.right(" ", ANZ_STELLEN_FRAGENNR) + ABSTAND_FNR_FRAGE; m_einzug_antwort = fkString.right(" ", ANZ_STELLEN_ANTWORTBEZEICHNUNG) + ABSTAND_FBEZ_ANTWORT; }
/** * Gibt die benutzten Resourcen wieder frei. * * Ruft die Funktion "clear" beim Fragenkatalog und bei * der Lernfabrik auf. * * Setzt anschliessend alle Membervariablen auf null. */ public void clear() { /* * Ist eine Instanz des Fragenkataloges vorhanden, wird * bei dieser die Funktion "clear" aufgerufen. * * Das sorgt fuer die Resourcen-Freigabe der Instanz. */ if (m_fragen_katalog != null) { m_fragen_katalog.clear(); } /* * Ist eine Instanz der Lernfabrik vorhanden, wird * bei dieser ebenfalls die Funktion "clear" aufgerufen. */ if (m_lern_fabrik != null) { m_lern_fabrik.clear(); } /* * Es werden die Variablen des Fragenkataloges, der * Lernfabrik und des Bildverzeichnisses auf * "null" gestellt. */ m_fragen_katalog = null; m_lern_fabrik = null; m_aktuelles_bild_verzeichnis = null; /* * Der Modus wird auf "MODUS_KEINE_FRAGEN_GELADEN" gestellt. */ m_modus = MODUS_KEINE_FRAGEN_GELADEN; }
/** * @return TRUE wenn der Testfragenkatalog erstellt werden konnte, sonst FALSE */ public bool erstelleTestFragenKatalog() { bool fkt_ergebnis = false; /* * Es wird die "clear"-Funktion dieser Klasse gerufen * um einen sauberen Variablen-Stand zu bekommen. */ clear(); /* * Es wird die Funktion zum erstellen des Testfragenkataloges aufgerufen. * * Wird beim Erstellen eine Exception ausgeloest wird * das Funktionsergebnis auf FALSE gestellt. */ m_fragen_katalog = fkTestErstellungFragenkatalog.getTestFragenKatalog(); m_modus = MODUS_FRAGEN_KATALOG_ANZEIGEN; fkt_ergebnis = true; return(fkt_ergebnis); }
/* * ################################################################################ */ 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 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); }
/* * ################################################################################ */ public static clsFragenKatalog getTestFragenKatalog() { clsFragenKatalog test_fragen_katalog = new clsFragenKatalog(); clsFrage aktuelle_frage = null; test_fragen_katalog.setDateiName("TestFragenkatalog1.xls"); int fragen_nr = 1; int fragen_anzahl = 2; int fragen_zaehler = 1; while (fragen_zaehler <= fragen_anzahl) { aktuelle_frage = new clsFrage(); aktuelle_frage.setId("ID1_" + fragen_zaehler + "_" + fragen_nr); aktuelle_frage.setNummer("" + fragen_nr); aktuelle_frage.setText1("Fragenblock 1 Nr. " + fragen_zaehler + " von " + fragen_anzahl); aktuelle_frage.setText2("Fragentext 2 A"); aktuelle_frage.setAntwortA(getTestAntwort(true, 1, true, "A")); aktuelle_frage.setAntwortB(getTestAntwort(true, 2, false, "B")); aktuelle_frage.setAntwortC(getTestAntwort(true, 3, false, "C")); aktuelle_frage.setAntwortD(getTestAntwort(true, 4, false, "D")); aktuelle_frage.setAntwortE(getTestAntwort(fragen_zaehler > 1, 5, false, "E")); aktuelle_frage.setAntwortF(getTestAntwort(fragen_zaehler > 1, 6, false, "F")); aktuelle_frage.setAntwortH(getTestAntwort(fragen_zaehler > 1, 7, false, "G")); aktuelle_frage.setAntwortG(getTestAntwort(fragen_zaehler > 1, 8, false, "H")); aktuelle_frage.setText2("Anzahl Antworten: " + aktuelle_frage.getAnzahlVorhandeneAntworten() + " korrekt " + aktuelle_frage.getAnzahlKorrekteAntworten() + " falsch " + aktuelle_frage.getAnzahlFalscheAntworten()); test_fragen_katalog.addFrage(aktuelle_frage); fragen_zaehler++; fragen_nr++; } fragen_anzahl = 7; fragen_zaehler = 1; while (fragen_zaehler <= fragen_anzahl) { aktuelle_frage = new clsFrage(); aktuelle_frage.setId("ID2_" + fragen_zaehler + "_" + fragen_nr); aktuelle_frage.setNummer("" + fragen_nr); aktuelle_frage.setText1("Fragenblock 2 Nr. " + fragen_zaehler + " von " + fragen_anzahl); aktuelle_frage.setText2("Fragentext 2 B"); aktuelle_frage.setAntwortA(getTestAntwort(true, 1, true, "A")); aktuelle_frage.setAntwortB(getTestAntwort(true, 2, false, "B")); aktuelle_frage.setAntwortC(getTestAntwort(fragen_zaehler >= 2, 3, false, "C")); aktuelle_frage.setAntwortD(getTestAntwort(fragen_zaehler >= 3, 4, false, "D")); aktuelle_frage.setAntwortE(getTestAntwort(fragen_zaehler >= 4, 5, false, "E")); aktuelle_frage.setAntwortF(getTestAntwort(fragen_zaehler >= 5, 6, false, "F")); aktuelle_frage.setAntwortH(getTestAntwort(fragen_zaehler >= 6, 7, false, "G")); aktuelle_frage.setAntwortG(getTestAntwort(fragen_zaehler >= 7, 8, false, "H")); aktuelle_frage.setText2("Anzahl Antworten: " + aktuelle_frage.getAnzahlVorhandeneAntworten() + " korrekt " + aktuelle_frage.getAnzahlKorrekteAntworten() + " falsch " + aktuelle_frage.getAnzahlFalscheAntworten()); test_fragen_katalog.addFrage(aktuelle_frage); fragen_zaehler++; fragen_nr++; } fragen_anzahl = 6; fragen_zaehler = 1; while (fragen_zaehler <= fragen_anzahl) { aktuelle_frage = new clsFrage(); aktuelle_frage.setId("ID2_" + fragen_zaehler + "_" + fragen_nr); aktuelle_frage.setNummer("" + fragen_nr); aktuelle_frage.setText1("Fragenblock 2 Nr. " + fragen_zaehler + " von " + fragen_anzahl); aktuelle_frage.setText2("Fragentext 2 B"); aktuelle_frage.setAntwortA(getTestAntwort(true, 1, true, "A")); aktuelle_frage.setAntwortB(getTestAntwort(true, 2, false, "B")); aktuelle_frage.setAntwortC(getTestAntwort(fragen_zaehler >= 2, 3, false, "C")); aktuelle_frage.setAntwortD(getTestAntwort(fragen_zaehler >= 3, 4, false, "D")); aktuelle_frage.setAntwortE(getTestAntwort(fragen_zaehler >= 4, 5, false, "E")); aktuelle_frage.setAntwortF(getTestAntwort(fragen_zaehler >= 5, 6, false, "F")); aktuelle_frage.setAntwortH(getTestAntwort(fragen_zaehler >= 6, 7, false, "G")); aktuelle_frage.setAntwortG(getTestAntwort(true, 8, false, "H")); aktuelle_frage.setText2("Anzahl Antworten: " + aktuelle_frage.getAnzahlVorhandeneAntworten() + " korrekt " + aktuelle_frage.getAnzahlKorrekteAntworten() + " falsch " + aktuelle_frage.getAnzahlFalscheAntworten()); test_fragen_katalog.addFrage(aktuelle_frage); fragen_zaehler++; fragen_nr++; } fragen_anzahl = 4; fragen_zaehler = 1; while (fragen_zaehler <= fragen_anzahl) { aktuelle_frage = new clsFrage(); aktuelle_frage.setId("ID2_" + fragen_zaehler + "_" + fragen_nr); aktuelle_frage.setNummer("" + fragen_nr); aktuelle_frage.setText1("Fragenblock 2 Nr. " + fragen_zaehler + " von " + fragen_anzahl); aktuelle_frage.setText2("Fragentext 2 B"); aktuelle_frage.setAntwortA(getTestAntwort(true, 1, true, "A")); aktuelle_frage.setAntwortB(getTestAntwort(true, 2, false, "B")); aktuelle_frage.setAntwortC(getTestAntwort(fragen_zaehler >= 4, 3, false, "C")); aktuelle_frage.setAntwortD(getTestAntwort(fragen_zaehler >= 3, 4, false, "D")); aktuelle_frage.setAntwortE(getTestAntwort(fragen_zaehler >= 2, 5, false, "E")); aktuelle_frage.setAntwortF(getTestAntwort(fragen_zaehler >= 3, 6, false, "F")); aktuelle_frage.setAntwortH(getTestAntwort(fragen_zaehler >= 4, 7, false, "G")); aktuelle_frage.setAntwortG(getTestAntwort(true, 8, false, "H")); aktuelle_frage.setText2("Anzahl Antworten: " + aktuelle_frage.getAnzahlVorhandeneAntworten() + " korrekt " + aktuelle_frage.getAnzahlKorrekteAntworten() + " falsch " + aktuelle_frage.getAnzahlFalscheAntworten()); test_fragen_katalog.addFrage(aktuelle_frage); fragen_zaehler++; fragen_nr++; } fragen_anzahl = 2; fragen_zaehler = 0; while (fragen_zaehler < fragen_anzahl) { aktuelle_frage = new clsFrage(); aktuelle_frage.setId("ID3_" + fragen_zaehler + "_" + fragen_nr); aktuelle_frage.setNummer("" + fragen_nr); aktuelle_frage.setText1("Fragenblock 3 Nr. " + fragen_zaehler + " von " + fragen_anzahl); aktuelle_frage.setText2("Fragentext 2 C"); aktuelle_frage.setAntwortA(getTestAntwort(true, 1, false, "A")); aktuelle_frage.setAntwortC(getTestAntwort(true, 3, false, "C")); aktuelle_frage.setAntwortD(getTestAntwort(true, 4, true, "D")); aktuelle_frage.setAntwortF(getTestAntwort(true, 6, false, "F")); aktuelle_frage.setAntwortG(getTestAntwort(true, 8, false, "H")); aktuelle_frage.setText2("Anzahl Antworten: " + aktuelle_frage.getAnzahlVorhandeneAntworten() + " korrekt " + aktuelle_frage.getAnzahlKorrekteAntworten() + " falsch " + aktuelle_frage.getAnzahlFalscheAntworten()); test_fragen_katalog.addFrage(aktuelle_frage); fragen_zaehler++; fragen_nr++; } fragen_anzahl = 2; fragen_zaehler = 0; while (fragen_zaehler < fragen_anzahl) { aktuelle_frage = new clsFrage(); aktuelle_frage.setId("ID4_" + fragen_zaehler + "_" + fragen_nr); aktuelle_frage.setNummer("" + fragen_nr); aktuelle_frage.setText1("Fragenblock 4 Nr. " + fragen_zaehler + " von " + fragen_anzahl); aktuelle_frage.setText2("Fragentext 2 D"); aktuelle_frage.setAntwortA(getTestAntwort(true, 1, false, "A")); aktuelle_frage.setAntwortC(getTestAntwort(true, 3, false, "C")); aktuelle_frage.setAntwortD(getTestAntwort(true, 2, true, "B")); aktuelle_frage.setText2("Anzahl Antworten: " + aktuelle_frage.getAnzahlVorhandeneAntworten() + " korrekt " + aktuelle_frage.getAnzahlKorrekteAntworten() + " falsch " + aktuelle_frage.getAnzahlFalscheAntworten()); test_fragen_katalog.addFrage(aktuelle_frage); fragen_zaehler++; fragen_nr++; } fragen_anzahl = 2; fragen_zaehler = 0; while (fragen_zaehler < fragen_anzahl) { aktuelle_frage = new clsFrage(); aktuelle_frage.setId("ID5_" + fragen_zaehler + "_" + fragen_nr); aktuelle_frage.setNummer("" + fragen_nr); aktuelle_frage.setText1("Fragenblock 5 Nr. " + fragen_zaehler + " von " + fragen_anzahl); aktuelle_frage.setText2("Fragentext 2 E"); aktuelle_frage.setAntwortA(getTestAntwort(true, 1, false, "A")); aktuelle_frage.setAntwortC(getTestAntwort(true, 3, false, "C")); aktuelle_frage.setAntwortD(getTestAntwort(true, 4, true, "D")); aktuelle_frage.setAntwortF(getTestAntwort(true, 6, false, "F")); aktuelle_frage.setAntwortH(getTestAntwort(true, 7, true, "G")); aktuelle_frage.setAntwortG(getTestAntwort(true, 8, false, "H")); aktuelle_frage.setText2("Anzahl Antworten: " + aktuelle_frage.getAnzahlVorhandeneAntworten() + " korrekt " + aktuelle_frage.getAnzahlKorrekteAntworten() + " falsch " + aktuelle_frage.getAnzahlFalscheAntworten()); test_fragen_katalog.addFrage(aktuelle_frage); fragen_zaehler++; fragen_nr++; } fragen_anzahl = 2; fragen_zaehler = 0; while (fragen_zaehler < fragen_anzahl) { aktuelle_frage = new clsFrage(); aktuelle_frage.setId("ID6_" + fragen_zaehler + "_" + fragen_nr); aktuelle_frage.setNummer("" + fragen_nr); aktuelle_frage.setText1("Fragenblock 6 Nr. " + fragen_zaehler + " von " + fragen_anzahl); aktuelle_frage.setText2("Fragentext 6 E"); aktuelle_frage.setAntwortA(getTestAntwort(true, 1, true, "A")); aktuelle_frage.setAntwortB(getTestAntwort(true, 2, false, "B")); aktuelle_frage.setAntwortC(getTestAntwort(true, 3, false, "C")); aktuelle_frage.setAntwortD(getTestAntwort(true, 4, true, "D")); aktuelle_frage.setAntwortE(getTestAntwort(true, 5, false, "E")); aktuelle_frage.setAntwortH(getTestAntwort(true, 7, true, "G")); aktuelle_frage.setAntwortG(getTestAntwort(true, 8, false, "H")); aktuelle_frage.setText2("Anzahl Antworten: " + aktuelle_frage.getAnzahlVorhandeneAntworten() + " korrekt " + aktuelle_frage.getAnzahlKorrekteAntworten() + " falsch " + aktuelle_frage.getAnzahlFalscheAntworten()); test_fragen_katalog.addFrage(aktuelle_frage); fragen_zaehler++; fragen_nr++; } return(test_fragen_katalog); }
/* * PARAMETER: pXmlDateiName = Pfad und Dateiname auf die zu parsende XML-Datei * PARAMETER: pFragenKatalog = der Fragenkatalog, in welchem die Fragen gespeichert werden sollen * * RETURN : TRUE sofern die Datei gelesen und geparst werden konnte, sonst false */ public bool startImportXmlDatei(String pXMLDatei, clsFragenKatalog pFragenKatalog) { bool knz_xml_datei_geparst = false; int xml_node_zaehler = 0; String xml_datei_inhalt = ""; String akt_root = ""; /* * Pruefung: Instanz fuer die Speicherung der Fragen vorhanden ? * * Ist keine Speicherinstanzt uebergeben, bekommt der Aufrufer FALSE zurueck. */ if (pFragenKatalog == null) { // Keine Instanz fuer die Speicherung vorhanden return(false); } /* * Dateiinhalt der XML-Datei in die Variable xml_datei_inhalt laden. */ xml_datei_inhalt = getXmlDateiInhalt(pXMLDatei); pFragenKatalog.setDateiName(pXMLDatei); /* * Pruefung: Konnte die XML-Datei geladen werden? * Wenn die XML-Datei nicht geladen werden konnte, gibt es einen Leerstring zurueck. * * Die Datei kann nur dann verarbeitet werden, wenn es einen Dateiinhalt zum * verarbeiten gibt. */ if (xml_datei_inhalt != "") { /* * Den Klammerzaehler auf 1 stellen. */ xml_node_zaehler = 1; /* * Erste XML-Klammern "FRAGE" ermitteln. */ akt_root = getTagString(xml_datei_inhalt, XML_TAG_FRAGE, xml_node_zaehler); /* * While-Schleife * Die While-Schleife laeuft solange wie: * ... es noch XML-Klammern gibt, die Variable "akt_root" kein Leerstring ist. * ... der Index-Zaehler noch nicht die Maximalgrenze der einzulesenden Objekte erreicht hat. */ while ((akt_root != "") && (xml_node_zaehler < MAX_ANZAHL_XML_KLAMMER_LESEN)) { /* * Aufruf der Parse-Funktion fuer ein Element der Klasse "clsFrage". * Die Ergenibsinstanz wird dem Vektor hinzugefuegt. */ pFragenKatalog.addFrage(parseClsFrage(akt_root)); /* * Index-Zaehler um 1 erhoehen */ xml_node_zaehler++; /* * Naechste XML-Klammer "FRAGE" holen. */ akt_root = getTagString(xml_datei_inhalt, XML_TAG_FRAGE, xml_node_zaehler); } knz_xml_datei_geparst = true; } else { /* * Fehlerfall: XML-Datei konnte nicht geparst werden. */ knz_xml_datei_geparst = false; } return(knz_xml_datei_geparst); }