Informations sur: AFFIDICO.BAS

Publié par SFLPMEA le 10/01/2010

Description

AFFIDICO.BAS Source Qbasic 4.5. Affichage des dictionnaires. Voir le sujet ‘ Un dictionnaire en Qbasic’ pour toutes informations. Par SFLPMEA ;

Code source (langage qbasic)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
' *****************************
' * AFFICHAGE DU DICTIONNAIRE *  ----->  C:\DICO\AFFIDICO.BAS
' *****************************
' Ecrit par SFLPMEA le 10/01/2010
    OPTION BASE 1: DEFSTR A-Z: CLOSE
    WIDTH 80, 50
    CLS
   
    Cfd% = 0               ' COUL DE FOND ECRAN
    Ccv% = 11              ' COUL CADRE VIDE
    Cct% = 10: Cte% = 14   ' COUL CADRE/TITRE
    Cdd% = 11              ' COUL DESIGNATIONS DONNEES
    Cdav% = 13             ' COUL DONNEES AVT SAISIE
    Cdas% = 14             ' COUL DONNEES … SAISIR
    Cds% = 15              ' COUL DONNEES APRES SAISIE
   
    TITRE = " °±² AFFICHAGE DICTIONNAIRE ²±°"
    L% = 3: GOSUB GS08.CENTRE
   
    Ec(1) = "ÉÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
    Ec(2) = "º  RANG º             MOT                º"
    Ec(3) = "ÌÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹"
    Ec(4) = "º       º                                º"
    Ec(5) = "ÌÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹"
    Ec(6) = "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ"
   
    COLOR Ccv%
    FOR L% = 5 TO 7: LOCATE L%, 20: PRINT Ec(L% - 4): NEXT L%
    FOR L% = 8 TO 40: LOCATE L%, 20: PRINT Ec(4): NEXT L%
    LOCATE 38, 20: PRINT Ec(5)
    FOR L% = 39 TO 41: LOCATE L%, 20: PRINT "º": LOCATE L%, 61: PRINT "º": NEXT L%
    LOCATE 42, 20: PRINT Ec(6)
   
    GOSUB GS22.OPEN: NE2.TOT& = LOF(2) / 32
   
    LOCATE 39, 23: COLOR 14: PRINT "EXPLICATIONS :  ";
    COLOR 10: LOCATE 39, 35: PRINT " * (ou æ) pour FIN"
    LOCATE 40, 25: PRINT " En Haut ou Bas pour d‚filement"
    LOCATE 41, 23: PRINT " - pour 1000 avant, + pour 1000 aprŠs"
   
    COLOR 13: LOCATE 39, 36: PRINT "*": LOCATE 39, 42: PRINT "æ"
    LOCATE 40, 29: PRINT "Haut": LOCATE 40, 37: PRINT "Bas"
    LOCATE 41, 24: PRINT "-": LOCATE 41, 43: PRINT "+"
   
    NE2H& = 1
    GOSUB A01.AFFICHAGE
    GOTO A02.OPTION
 
A01.AFFICHAGE: L% = 7: NE2H.PR& = NE2H&
   
    FOR NE2H& = NE2H& TO NE2H& + 29'13
        NE2& = NE2H&: GOSUB GS22.LECTURE: L% = L% + 1
       
        IF ASC(Mot) > 0 THEN
            COLOR 10: LOCATE L%, 21: PRINT USING "#######"; NE2&
            COLOR 15: LOCATE L%, 30: PRINT Mot
        ELSE
            LOCATE L%, 21: PRINT SPACE$(7)
            LOCATE L%, 30: PRINT SPACE$(25)
        END IF
       
    NEXT NE2H&
   
    NE2H& = NE2H.PR&
    RETURN
 
A02.OPTION: K = INKEY$: IF K = "" GOTO A02.OPTION
   
    SELECT CASE K
        CASE CHR$(27):         COLOR 15: END
        CASE "*", "æ":         END
        CASE CHR$(0) + "H":    NE2H& = NE2H& - 1
        CASE CHR$(0) + "I":    NE2H& = NE2H& - 29  '14
        CASE CHR$(0) + "P":    NE2H& = NE2H& + 1
        CASE CHR$(0) + "Q":    NE2H& = NE2H& + 29  '14
        CASE "-":              NE2H& = NE2H& - 1000
        CASE "+":              NE2H& = NE2H& + 1000
 
        CASE ELSE:             GOTO A02.OPTION
    END SELECT
   
    IF NE2H& < 1 THEN
        NE2H& = 1
    END IF
   
    IF NE2H& > NE2.TOT& THEN
        NE2H& = NE2.TOT&
    END IF
   
    GOSUB A01.AFFICHAGE: GOTO A02.OPTION
   
 
' ***** TITRE ENTOURE d'un CADRE *****
 
GS08.GAUCHE: L% = L% - 1: C% = 4: GOTO GS08.TITRE
 
GS08.CENTRE: L% = L% - 1: C% = 39 - LEN(TITRE) / 2: GOTO GS08.TITRE
 
GS08.DROIT: L% = L% - 1: C% = 76 - LEN(TITRE)
 
GS08.TITRE: Lg% = LEN(TITRE): COLOR Cct%
    LOCATE L%, C%: PRINT "É"; STRING$((Lg%), "Í"); "»"
    LOCATE L% + 1, C%: PRINT "º": LOCATE L% + 1, C% + Lg% + 1: PRINT "º"
    LOCATE L% + 2, C%: PRINT "È"; STRING$((Lg%), "Í"); "¼"
    LOCATE L% + 1, C% + 1: COLOR Cte%: PRINT TITRE; : RETURN
 
' ***** AFFICHAGE CADRE VIDE *****
 
GS09.CV: COLOR Ccv%
    LOCATE Lchg%, Cchg%: PRINT "É"; STRING$((Ccbd% - Cchg% - 1), "Í"); "»"
    LOCATE Lcbd%, Cchg%: PRINT "È"; STRING$((Ccbd% - Cchg% - 1), "Í"); "¼"
    FOR L% = Lchg% + 1 TO Lcbd% - 1
        LOCATE L%, Cchg%: PRINT "º": LOCATE L%, Ccbd%: PRINT "º": NEXT L%
    RETURN
 
' ***** FICHIER DICTIONNAIRE
 
GS22.OPEN: ' ***** Choisir DIC1.DIC ou DIC2.DIC
    OPEN "C:\DICO\DIC2.DIC" FOR RANDOM AS #2 LEN = 32' (NE2&)
    FIELD #2, 31 AS F.MOT, 1 AS F.SUP
    RETURN
 
GS22.LECTURE: GET #2, NE2&
    Mot = F.MOT: SUP = F.SUP
    RETURN
 
v6 © Computaid SPRL 2005-2012 - Tous droits réservés - Hébergé par eTigris - Page générée en 0,016 s - Crédits - Stats
1 connecté