Mittwoch, 9. September 2015

Vokabeltrainer Translator programmieren mit Visual Basic VBA Excel Access


Vokabeltrainer Translator programmieren mit Visual Basic VBA Excel Access

Author D.Selzer-McKenzie

Video: http://youtu.be/1YmHbVEYp7M

Hier zeige ich Ihnen, wie Sie mit ganz wenig Code einen Vokaltrainer oder eine Übersetzungssoftware programmieren können. Auf eine Datenbank mit den entsprechenden Wörtern muss die Software natürlich zugreifen können, und da kann man z.B. eine Datenbank selbst erstellen kurzerhand von einem anderen kommerziellen Programm die Datenbank verwenden.

Den SourceCode, der hier wegen der Steuerzeichen nicht eingeschrieben werden kann, finden Sie zum kostenlosen Download im Forum


 

Hier nun der SourceCode:

Imports System.IO

 

Public Class Form1

    ' Liste der Fragen

    Dim frage As New ArrayList

 

    ' Liste der Antworten

    Dim antwort As New ArrayList

 

    ' Zufallszahl für ein Element der beiden Listen

    Dim zufallszahl As Integer

 

    ' Richtung der Vokabel-Abfrage

    Dim richtung As Integer

 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        ' Initialisierung des Zufallsgenerators

        Randomize()

 

        ' Startrichtung Englisch - Deutsch

        richtung = 2

    End Sub

 

    Private Sub ButtonTestStarten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonTestStarten.Click

        Dim con As New OleDb.OleDbConnection

        Dim cmd As New OleDb.OleDbCommand

        Dim reader As OleDb.OleDbDataReader

 

        'es muss eine Datenbank erstellt werden!

        con.ConnectionString =

           "Provider=Microsoft.Jet.OLEDB.4.0;" &

           "Data Source=C:\Temp\lernen.mdb"

 

        cmd.Connection = con

        cmd.CommandText = "select * from vokabel"

 

        frage.Clear()

        antwort.Clear()

 

        Try

            con.Open()

            reader = cmd.ExecuteReader()

 

            ' Speicherung in den Listen gemäß

            ' der ausgewählten Richtung

            Do While reader.Read()

                If richtung = 1 Or richtung = 3 Then

                    frage.Add(reader("deutsch"))

                ElseIf richtung = 2 Then

                    frage.Add(reader("englisch"))

                Else

                    frage.Add(reader("französisch"))

                End If

 

                If richtung = 2 Or richtung = 4 Then

                    antwort.Add(reader("deutsch"))

                ElseIf richtung = 1 Then

                    antwort.Add(reader("englisch"))

                Else

                    antwort.Add(reader("französisch"))

                End If

            Loop

 

            reader.Close()

            con.Close()

 

            ' Buttons und Menü (de)aktivieren

            ButtonTestStarten.Enabled = False

            ButtonPrüfen.Enabled = True

            mnuRichtung.Enabled = False

            TextBoxAusgabe.Enabled = True

 

            ' Erste Vokabel erscheint

            Nächste_Vokabel()

 

        Catch ex As Exception

            MessageBox.Show(ex.Message)

        End Try

    End Sub

 

    Sub Nächste_Vokabel()

        ' Falls keine Vokabel mehr in der Liste: Ende

        ' Falls noch Vokabeln in der Liste: Nächste

        If frage.Count < 1 Then

            MessageBox.Show(

                "Gratuliere! Alles geschafft")

            Test_Init()

        Else

            zufallszahl = Rnd() * (frage.Count - 1)

            lblFrage.Text = frage(zufallszahl)

            TextBoxAusgabe.Text = ""

        End If

    End Sub

 

    Sub Test_Init()

        ' Buttons und Menü (de)aktivieren

        ButtonTestStarten.Enabled = True

        ButtonPrüfen.Enabled = False

        mnuRichtung.Enabled = True

        TextBoxAusgabe.Enabled = False

 

        ' Felder leeren

        lblFrage.Text = ""

        TextBoxAusgabe.Text = ""

    End Sub

 

    Private Sub ButtonPrüfenPrüfen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonPrüfen.Click

        ' Falls richtig beantwortet:

        ' Vokabel aus Liste nehmen

        If TextBoxAusgabe.Text = antwort(zufallszahl) Then

            MessageBox.Show("Richtig")

            frage.RemoveAt(zufallszahl)

            antwort.RemoveAt(zufallszahl)

 

            ' Falls falsch beantwortet:

            ' richtige Antwort nennen

        Else

            MessageBox.Show(

                "Falsch, richtige Antwort ist " &

                vbCrLf & "'" &

                antwort(zufallszahl) & "'")

        End If

 

        ' Nächste Vokabel erscheint

        Nächste_Vokabel()

    End Sub

 

    Private Sub MenüEndeTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenüEndeTest.Click

        ' Abbruch mit Rückfrage

        If MessageBox.Show(

            "Test wirklich abbrechen?",

            "Vokabel", MessageBoxButtons.YesNo,

            MessageBoxIcon.Question) =

            DialogResult.Yes Then

            Test_Init()

        End If

    End Sub

 

    Private Sub MenüEndeProgramm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenüEndeProgramm.Click

        ' Beenden mit Rückfrage

        If MessageBox.Show(

            "Programm wirklich beenden?",

            "Vokabel", MessageBoxButtons.YesNo,

            MessageBoxIcon.Question) =

            DialogResult.Yes Then

            Me.Close()

        End If

    End Sub

 

    Private Sub MenüDeutschEnglish_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenüDeutschEnglish.Click

        ' Richtung wird geändert

        richtung = 1

        Check_False()

        MenüDeutschEnglish.Checked = True

        LabelSprachRichtung.Text = "deutsch/englisch"

    End Sub

 

    Private Sub MenüEnglishDeutsch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenüEnglishDeutsch.Click

        richtung = 2

        Check_False()

        MenüEnglishDeutsch.Checked = True

        LabelSprachRichtung.Text = "englisch/deutsch"

    End Sub

 

    Private Sub MenüDeutschFranzösisch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenüDeutschFranzösisch.Click

        richtung = 3

        Check_False()

        MenüDeutschFranzösisch.Checked = True

        LabelSprachRichtung.Text = "deutsch/französisch"

    End Sub

 

    Private Sub MenüFranzösischDeutsch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenüFranzösischDeutsch.Click

        richtung = 4

        Check_False()

        MenüFranzösischDeutsch.Checked = True

        LabelSprachRichtung.Text = "französisch/deutsch"

    End Sub

 

    Sub Check_False()

        MenüDeutschEnglish.Checked = False

        MenüEnglishDeutsch.Checked = False

        MenüDeutschFranzösisch.Checked = False

        MenüFranzösischDeutsch.Checked = False

    End Sub

 

    Private Sub MenüAnleitung_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenüAnleitung.Click

        Dim fs As FileStream

        Dim sr As StreamReader

        Dim dateiname As String = "hilfe.txt"

        Dim ausgabe As String

 

        If Not File.Exists(dateiname) Then

            MessageBox.Show("Die Datei " &

                dateiname & " existiert nicht")

            Exit Sub

        End If

 

        fs = New FileStream(dateiname,

            FileMode.Open)

        sr = New StreamReader(fs)

 

        ausgabe = ""

        Do Until sr.Peek() = -1

            ausgabe &= sr.ReadLine() & vbCrLf

        Loop

        sr.Close()

 

        MessageBox.Show(ausgabe)

    End Sub

End Class

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

 

 

Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.