Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

option

Uploader:MitgliedJoPa
Datum/Zeit:12.12.2013 22:09:04
Hinweis: Dieser Quelltext ist Bestandteil des Projekts Vokabel Trainer, zu dem es auf FreeBASIC-Portal.de eine Projektseite gibt.

DECLARE SUB Woerterbuch (Pfad$)
DECLARE SUB umwievielUhraufhoeren (Zeit$)
DECLARE SUB wievielBuchstabenHilfe ()
DECLARE SUB Bildschoner ()
DECLARE SUB wieAbfragen ()
DECLARE SUB wieOftAbfragen ()
DECLARE SUB Maske (H1!, H2!, A$)
DECLARE SUB MenueSchreiben (N$, Zeit$, Pfad$)
DECLARE SUB Aussuchen (N$, Zeit$, Pfad$)
DECLARE SUB amAnfangladen (N$)
DECLARE SUB Speichern (N$, Zeit$, Pfad$)
DECLARE SUB welcherTeil ()

DIM SHARED ZA, ZB, XX, O, nochmal, BSS, HProz, Z

    CLS
    ON ERROR GOTO vokini
    OPEN "vok.ini" FOR INPUT AS #1
        INPUT #1, N$    'Am Anfang laden
        INPUT #1, ZA    'ab wo gebt werden soll
        INPUT #1, ZB    'bis wo gebt werden soll
        INPUT #1, XX    '1=Deutsch/FREM 2=Frem/Deutsch 3=durchein 4=Frem1/Frem2
        INPUT #1, O     'Wie oft Abgefragt werden soll
        INPUT #1, nochmal   '2=nicht nochmal Abfragen andere nochmal Abfra.
        INPUT #1, Zeit$   'aufh”ren zu ben
        INPUT #1, BSS 'Bildschirmschoner nach Sekunden anschalten
        INPUT #1, Pfad$ 'W”rterbcher
        INPUT #1, HProz  'wieviel Prozent bei der Hilfe des Wortes angez. werden soll
    CLOSE #1

    ON ERROR GOTO nichtda
    OPEN "dat.dat" FOR INPUT AS #1
        INPUT #1, Z
        INPUT #1, N$
        INPUT #1, Zeit$
        INPUT #1, Pfad$
    CLOSE #1

    CALL Maske(1, 3, "  Optionen  ")
    CALL MenueSchreiben(N$, Zeit$, Pfad$)
    CALL Aussuchen(N$, Zeit$, Pfad$)

nichtda:
    END

vokini:
    CLS
    PRINT "Datei vok.ini nicht gefunden!"
    PRINT "Starten Sie das Vokabelprogramm neu(vok.exe)!!!"
END

SUB amAnfangladen (N$)
    CLS
    CALL Maske(1, 3, "  Beim Programmstart Vokabeldatei Automatisch laden ")
    LOCATE 7, 3
    PRINT "Welche Vokabel-Datei soll Automatisch geladen werden wenn Sie den"
    LOCATE 8, 3
    PRINT "Vokabel-Trainer starten?"
    LOCATE 11, 3
    PRINT "geben Sie nichts ein wenn es die Datei <"; N$; "> ist!!!"
    LOCATE 14, 1
    PRINT "--------------------------------------------------------------------------------"
    LOCATE 16, 3
    LINE INPUT "  Hier eingeben: "; A$
    IF A$ <> "" THEN N$ = A$

    CLS
    CALL Maske(1, 3, "  Optionen  ")
    CALL MenueSchreiben(N$, Zeit$, Pfad$)
END SUB

SUB Aussuchen (N$, Zeit$, Pfad$)
DO
    K$ = INKEY$
    IF K$ = "1" THEN CALL amAnfangladen(N$)
    IF K$ = "2" THEN CALL welcherTeil
    IF K$ = "3" THEN CALL wieAbfragen
    IF K$ = "4" THEN CALL wieOftAbfragen
    IF K$ = "5" THEN CALL umwievielUhraufhoeren(Zeit$)
    IF K$ = "6" THEN CALL wievielBuchstabenHilfe
    IF K$ = "7" THEN CALL Woerterbuch(Pfad$)
    IF K$ = "8" THEN CALL Bildschoner
    IF K$ = "9" THEN CALL Speichern(N$, Zeit$, Pfad$)
LOOP UNTIL K$ = CHR$(27)
CLS
END
END SUB

SUB Bildschoner
    CLS
    CALL Maske(1, 3, "  Bildschirmschoner ")
    LOCATE 6, 4
    PRINT "Nach wieviel Sekunden, wenn man nichts mehr drckt, soll der Bildschirmschoner"
    LOCATE 8, 1
    PRINT "ausgefhrt werden?"
    LOCATE 10, 1
    INPUT "Bitte eingeben"; BSS
    CLS
    CALL Maske(1, 3, "  Optionen  ")
    CALL MenueSchreiben(N$, Zeit$, Pfad$)

END SUB

SUB Maske (H1, H2, A$)
    LOCATE H1 + 1, 40 - (LEN(A$) / 2)
    PRINT A$

    B1 = 40 - (LEN(A$) / 2) - 1
    B2 = 40 - (LEN(A$) / 2) + (LEN(A$))


    FOR I = H1 + 1 TO H2 - 1
        LOCATE I, B1: PRINT "º"
        LOCATE I, B2: PRINT "º"
    NEXT I

    FOR I = 1 TO B2 - B1 - 1
        LOCATE H1, B1 + I: PRINT "Í"
        LOCATE H2, B1 + I: PRINT "Í"
    NEXT I

    LOCATE H1, B1: PRINT "É"
    LOCATE H1, B2: PRINT "»"
    LOCATE H2, B1: PRINT "È"
    LOCATE H2, B2: PRINT "Œ"

END SUB

SUB MenueSchreiben (N$, Zeit$, Pfad$)
    LOCATE 8, 1
    PRINT "     1. Welche Vokabel-Datei Automatisch am Anfang laden"
    PRINT "     2. Welcher Teil der Vokabeldatei gebt werden soll"
    PRINT "     3. Wie soll Abgefragt werden (D/E, E/D, E/E2)"
    PRINT "     4. Wie oft Abfragen"
    PRINT "     5. Um wieviel Uhr du aufh&#148;ren m&#148;chtest zu ben"
    PRINT "     6. Wieviel Buchstaben der Computer zeigen soll beim &#154;ben (Hilfe:)"
    PRINT

    PRINT "     7. W&#148;rterbuch nach doppelten durchsuchen und &#132;ndern"
    PRINT "     8. Bildschirm-Schoner"
    PRINT "     9. Einstellung speichern"
END SUB

SUB Speichern (N$, Zeit$, Pfad$)
    OPEN "vok.ini" FOR OUTPUT AS #1
        PRINT #1, N$
        PRINT #1, ZA
        PRINT #1, ZB
        PRINT #1, XX
        PRINT #1, O
        PRINT #1, nochmal
        PRINT #1, Zeit$
        PRINT #1, BSS
        PRINT #1, Pfad$
        PRINT #1, HProz
    CLOSE #1
END SUB

SUB umwievielUhraufhoeren (Zeit$)
    CLS
    CALL Maske(1, 3, "Um wieviel Uhr aufh&#148;ren zu ben ")
    LOCATE 5, 3
    PRINT "Um wieviel Uhr wollen Sie aufh&#148;ren zu &#154;ben(z.B. 12:14:43)"
    LOCATE 8, 3
    INPUT "Bitte vollst&#132;ndig wie im Beispiel eingeben"; Zeit$
    CLS
    CALL Maske(1, 3, "  Optionen  ")
    CALL MenueSchreiben(N$, Zeit$, Pfad$)
END SUB

SUB welcherTeil
    DO
        CLS
        CALL Maske(1, 3, "Welcher Teil der Datei abgefragt werden soll")
        LOCATE 7, 3
        PRINT "Es sind maximal "; Z; " Vokabeln"

        LOCATE 11, 3
        INPUT "Von wo soll Abgefragt werden"; ZA
        LOCATE 14, 3
        INPUT "Bis wo soll Abgefragt werden"; ZB
        IF ZA > Z THEN ZA = 0: EXIT DO
        IF ZB > Z THEN ZB = Z: EXIT DO
        IF ZA < ZB THEN EXIT DO
    LOOP
    CLS
    CALL Maske(1, 3, "  Optionen  ")
    CALL MenueSchreiben(N$, Zeit$, Pfad$)
END SUB

SUB wieAbfragen
    CLS
    CALL Maske(1, 3, " Wie soll Abgefragt werden  ")
    LOCATE 6, 3
    PRINT "1. Von Deutsch in Fremdsprache"
    LOCATE 7, 3
    PRINT "2. Von Fremdsprache in Deutsch"
    LOCATE 8, 3
    PRINT "3. 1 und 2 zuf&#132;llig"
    LOCATE 10, 3
    PRINT "4. Von Fremdsprache1 in Fremdsprache2 und Deutsch1"
    LOCATE 14, 3
    INPUT "Bitte Ziffer eingeben"; XX
    IF XX > 4 THEN XX = 4
    IF XX < 1 THEN XX = 1
    CLS
    CALL Maske(1, 3, "  Optionen  ")
    CALL MenueSchreiben(N$, Zeit$, Pfad$)
END SUB

SUB wieOftAbfragen
    CLS
    CALL Maske(1, 3, " Wie oft abgefragt werden soll  ")
    LOCATE 5, 3
    PRINT "Soll, eine Vokabel die richtig beantwortet worden ist, nochmal abgefragt werden"
    INPUT "(J/N)"; A$
    A$ = LCASE$(A$)
    IF A$ = "j" OR A$ = "ja" THEN nochmal = 0
    IF A$ = "n" OR A$ = "nein" THEN nochmal = 2

    IF nochmal = 0 THEN
        LOCATE 12, 1
        INPUT "Wie oft soll abgefragt werden"; O
    END IF

    CLS
    CALL Maske(1, 3, "  Optionen  ")
    CALL MenueSchreiben(N$, Zeit$, Pfad$)

END SUB

SUB wievielBuchstabenHilfe
    CLS
    CALL Maske(1, 3, "Buchstaben menge")
    LOCATE 6, 3
    PRINT "Wieviel Prozent der Buchstaben, des Wortes welches bersetzt werden"
    LOCATE 7, 3
    PRINT "soll, soll angezeigt werden wenn man es erst falsch bersetzt"
    LOCATE 11, 3
    INPUT "hier eingeben(0%-90%)"; HProz
    IF HProz > 90 THEN HProz = 90
    IF HProz < 0 THEN HProz = 0

    CLS
    CALL Maske(1, 3, "  Optionen  ")
    CALL MenueSchreiben(N$, Zeit$, Pfad$)
END SUB

SUB Woerterbuch (Pfad$)
'----------------------------------------------------------------------------
    CLS
    PRINT "-----ACHTUNG----"
    PRINT " dieser Vorgang kann mehrere Minuten dauern"

    OPEN Pfad$ + "WORTBUCH.UCH" FOR INPUT AS #1
        DO
            LINE INPUT #1, A$
            IF EOF(1) THEN EXIT DO
            LINE INPUT #1, A$
            LINE INPUT #1, A$
            LINE INPUT #1, A$
            LINE INPUT #1, A$
            LINE INPUT #1, A$
            LINE INPUT #1, A$
            LINE INPUT #1, A$
            I = I + 1
        LOOP UNTIL EOF(1)
    CLOSE #1

'----------------------------------------------------------------------------

    OPEN Pfad$ + "WORTBUCH.111" FOR OUTPUT AS #1
    CLOSE #1

    OPEN Pfad$ + "WORTBUCH.UCH" FOR INPUT AS #1
        DO
            S = S + 1
            LOCATE 12, 4
            PRINT USING "###% erledigt"; S * 100 / I
            LINE INPUT #1, A1$
            LINE INPUT #1, A2$
            LINE INPUT #1, A3$
            LINE INPUT #1, A4$
            LINE INPUT #1, A5$
            LINE INPUT #1, A6$
            LINE INPUT #1, A7$
            LINE INPUT #1, A8$
            OPEN Pfad$ + "WORTBUCH.111" FOR INPUT AS #2
            IF EOF(2) THEN 30
                DO
                    LINE INPUT #2, B1$      '
                    IF EOF(2) THEN EXIT DO
                    LINE INPUT #2, B2$
                    LINE INPUT #2, B3$      '
                    LINE INPUT #2, B4$
                    LINE INPUT #2, B5$      '
                    LINE INPUT #2, B6$
                    LINE INPUT #2, B7$      '
                    LINE INPUT #2, B8$
                    IF A1$ = B1$ AND A3$ = B3$ AND A5$ = B5$ AND A8$ = B8$ THEN
                        G = 1
                    END IF
                LOOP UNTIL EOF(2)
30
            CLOSE #2

            IF G <> 1 THEN
                OPEN Pfad$ + "WORTBUCH.111" FOR APPEND AS #2
                    PRINT #2, A1$
                    PRINT #2, A2$
                    PRINT #2, A3$
                    PRINT #2, A4$
                    PRINT #2, A5$
                    PRINT #2, A6$
                    PRINT #2, A7$
                    PRINT #2, A8$
                CLOSE #2
            END IF
            G = 0
        LOOP UNTIL EOF(1)
    CLOSE #1

    KILL Pfad$ + "wortbuch.uch"
    NAME Pfad$ + "wortbuch.111" AS Pfad$ + "wortbuch.uch"
50
G = 0
'--------------------------------------------------------------------------

    OPEN Pfad$ + "xxx.xxx" FOR OUTPUT AS #1
    CLOSE #1
    FOR Sprache = 0 TO 1
        IF Sprache = 0 THEN
            T$ = LEFT$(Wort$, 1)
            Woert1$ = "deutbuch."
            Woert3$ = "ch"
        END IF

        IF Sprache = 1 THEN
            T$ = LEFT$(Wort$, 1)
            Woert1$ = "frembuch."
            Woert3$ = "ch"
        END IF

            FOR BuchZ = 65 TO 90
                WO$ = CHR$(BuchZ)
                Datei$ = Woert1$ + WO$ + Woert3$
                LOCATE 18, 2
                PRINT "Computer ist bei "; Datei$; "    "
                OPEN Pfad$ + "xxx.xxx" FOR OUTPUT AS #1
                CLOSE #1

                OPEN Pfad$ + Datei$ FOR INPUT AS #1
                    DO
                        LINE INPUT #1, A1$

                        OPEN Pfad$ + "xxx.xxx" FOR INPUT AS #2
                        IF EOF(2) THEN 70
                            DO
                                LINE INPUT #2, B1$      '
                                IF EOF(2) THEN EXIT DO
                                IF A1$ = B1$ THEN
                                    G = 1
                                END IF
                            LOOP UNTIL EOF(2)
70
                        CLOSE #2

                        IF G <> 1 THEN
                            OPEN Pfad$ + "xxx.xxx" FOR APPEND AS #2
                                PRINT #2, A1$
                            CLOSE #2
                        END IF
                        G = 0
                    LOOP UNTIL EOF(1)
                CLOSE #1

                KILL Pfad$ + Datei$
                NAME Pfad$ + "xxx.xxx" AS Pfad$ + Datei$
            NEXT BuchZ

    NEXT Sprache

    CLS
    CALL Maske(1, 3, "  Optionen  ")
    CALL MenueSchreiben(N$, Zeit$, Pfad$)
END SUB