Publié par SFLPMEA le 10/01/2010
AFFIDICO.BAS Source Qbasic 4.5. Affichage des dictionnaires. Voir le sujet ‘ Un dictionnaire en Qbasic’ pour toutes informations. Par SFLPMEA ;
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