Wie analysieren Sie einen text-Datei, und erstellen Sie einen Datenbank-Datensatz von es

Ich versuche im Grunde eine einfache Test-Generator. Ich möchte eine Schaltfläche, um eine Textdatei zu analysieren und fügen Sie die Datensätze in meine Datenbank. Die Fragen und Antworten sind in einer text-Datei. Ich habe die Suche im Netz nach Beispielen, aber ich kann nicht finden, eine, die passt zu meiner situation.

Die text-Datei header-Informationen, die ich will, Sie zu ignorieren, bis Sie die Zeile, die mit "~ Ende des Auszugs". Ich will "~ Ende des Auszugs", um anzugeben, der Anfang der Fragen. Ein paar Zeilen nach, die nach einer Zeile suchen, die mit einem "(" an der siebten Stelle. Ich will, dass, um anzuzeigen, die Frage, die Anzahl Linie. Die Frage Nummer line ist einzigartig, dass die "(" die siebte Stelle. Ich will, dass als Indikator markiert den Beginn einer neuen Frage. In der Frage Nummer Zeile, die ersten drei Zeichen zusammen "T1A" die Frage der Gruppe. Der Letzte Teil des T1A*01* ist die Nummer der Frage innerhalb dieser Gruppe.

So, wie Sie sehen können, werde ich auch brauchen, um die tatsächliche Frage, die text Zeile und die Antwort-Linien als auch. Auch in der Regel nach den vier Antwort-Linien ist die Frage, Terminator, angezeigt durch "~~". Ich weiß nicht, wie ich wäre in der Lage, dies zu tun für alle Fragen, die in der text-Datei. Muss ich halten das hinzufügen zu einem array-String? Wie würde ich den Zugriff auf diese Informationen aus der Datei und fügen Sie Sie in einer Datenbank. Dies ist sehr verwirrend für mich und die Art, wie ich fühle, ich könnte lernen, wie dies funktioniert, ist, indem Sie sehen, ein Beispiel, das deckt meine situation. Hier ist ein link zu der text-Datei, die ich spreche:http://pastebin.com/3U3uwLHN

Code:

public static void main(String args[]) {

    String endOfSyllabus = "~ End of Syllabus";
    Path objPath = Paths.get("2014HamTechnician.txt");
    String[]  restOfTextFile = null;

    if (Files.exists(objPath)){

        File objFile = objPath.toFile();
        try(BufferedReader in = new BufferedReader(
                new FileReader(objFile))){

            String line = in.readLine();
            List<String> linesFile = new LinkedList<>();

            while(line != null){
                linesFile.add(line);  
                line = in.readLine();
            }

            System.out.println(linesFile);
        }
        catch(IOException e){
            System.out.println(e);
        }
    }
    else{
        System.out.println(
                objPath.toAbsolutePath() + " doesn't exist");
    }

    /* Create and display the form */
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new A19015_Form().setVisible(true);
        }
    });
}
  • Sind Sie vertraut mit JDBC?
  • Art. Ich weiß genug, um wahrscheinlich zu machen, eine Datenbank. Das eigentliche problem ist, die Daten aus der text-Datei. Das ist, wo ich bin ratlos.
  • Ich schlage vor, Sie gestalten Ihre Tabelle(N) erste. Dann entscheiden Sie, was Java Collection ist besser für diesen Zweck geeignet. Dann Programmieren Sie Ihre gesamte Logik und dann beginnen zu füllen die blanks. Es könnte klug sein, um definieren Ihre grundlegenden QA (Frage und Antworten) Klasse ArrayList von QS-Objekten.
  • Ich würde den download von MySQL lernen Sie, wie Sie es verwenden, erfahren Sie, wie Sie eine Tabelle erstellen und einfügen von Datensätzen erfahren Sie, wie laden Sie eine tabulatorgetrennte Datei. Danach schreiben Sie Ihren parser. Java ist OK, aber Perl ist richtig gut für diesen Zweck.
InformationsquelleAutor oxxi | 2013-05-21
Schreibe einen Kommentar