| 10 'LEXIQUE ANGLAIS-FRANCAIS / AMSTRAD
20 'Michel Archambault / 1985 50 OPENOUT"BIDON" 60 MEMORY HIMEM-1 70 CLOSEOUT 200 MODE 1:BORDER 2:INK 2,20:PAPER 0:PEN 1:CLS 210 DIM M$(900,1):DEFINT A-Z 250 'GOTO 1000:'Ligne a effacer des que le fichier mots aura ete enregistre. 300 'LECTURE FICHIER 310 CLS:PEN 3:LOCATE 9,4:PRINT "LEXIQUE ANGLAIS-FRANCAIS":PEN 1 320 LOCATE 3,8:PRINT "PREPAREZ LA CASSETTE OU DISQUETTE" 330 LOCATE 3,10:PRINT "CONTENANT LE FICHIER MOTS ANGLOFRA," 340 PEN 2: LOCATE 10,15:PRINT "puis tapez une Touche...":PEN 1 350 CALL &BB06:CLS:PRINT:PRINT " CHARGEMENT des MOTS ......":PRINT 400 OPENIN "ANGLOFRA":INPUT#9,NF 410 FOR I=1 TO NF:INPUT#9,M$(I,0),M$(I,1):NEXT 420 CLOSEIN 1000 'MENU PRINCIPAL 1010 CLS:INK 0,1:INK 1,24 1020 LOCATE 17,2:PEN 3:PRINT "M E N U":PEN 2:LOCATE 29,2:PRINT NF;"mots":PEN 1 1030 LOCATE 6,4:PRINT "A = Anglais ---> Francais" 1040 LOCATE 6,6:PRINT "F = Francais --> Anglais" 1050 LOCATE 6,8:PRINT "C = Completer le lexique" 1060 LOCATE 6,10:PRINT "M = Modifications" 1070 LOCATE 6,12:PRINT "E = Enregistrement" 1080 LOCATE 6,14:PRINT "T = Tri alphabetique" 1100 LOCATE 6,16:PRINT "I = Impression" 1110 LOCATE 6,20:PRINT "Q = Quitter" 1150 TEX$="AFCMETIQ":GOSUB 50000 1160 ON K GOSUB 2000,2500,4000,5000,6000,7000,8000,1500 1170 GOTO 1000 1500 'FINAL 1510 CLS:LOCATE 10,12:PRINT "VOUS POUVEZ ETEINDRE.":PRINT:PRINT 1520 END 2000 'RECHERCHE ANGLAIS-->FRANCAIS 2010 R$="ANGLAIS":P=0 2020 GOSUB 3000 2030 RETURN 2500 'RECHERCHE FRANCAIS-->ANGLAIS 2510 R$="FRANCAIS":P=1 2520 GOSUB 3000 2530 RETURN 3000 'RECHERCHE DE TRADUCTION 3010 WINDOW #1,1,40,1,7:PAPER#1,0:PEN#1,1:CLS #1 3020 WINDOW #0,1,40,8,25:PAPER 2:PEN 0:CLS:PRINT 3030 LOCATE#1,4,2:PRINT#1,"Mot suivi de * = contenant ce mot" 3040 LOCATE #1,2,4:PRINT#1,"Q pour QUITTER:Le BIP=fin du fichier" 3050 PEN#1,3:LOCATE #1,3,6:PRINT#1,CHR$(18);"Mot ";R$;" ?: "; 3060 LINE INPUT #1,M$:M$=UPPER$(M$):IF M$="Q" THEN 3900 3080 IF RIGHT$(M$,1)="*" THEN 3500 3100 IF LEN(M$) >14+P*7 THEN 3050 3110 FOR I=1 TO NF 3120 IF M$=M$(I,P) THEN GOSUB 3800 3130 NEXT:PRINT CHR$(7);:GOTO 3050 3500 M$=LEFT$(M$,LEN(M$)-1) 3510 IF LEN(M$) >14+P*7 THEN 3050 3520 FOR I=1 TO NF 3530 IF INSTR(M$(I,P),M$) >0 THEN GOSUB 3800 3540 NEXT:PRINT CHR$(7);:GOTO 3050 3800 'AFFICHAGE LIGNE RESULTAT 3810 PRINT USING "###";I;:PRINT TAB(5);M$(I,0);TAB(18);":";M$(I,1) 3830 RETURN 3900 WINDOW#0,1,40,1,25:PAPER 0:PEN 1:CLS 3910 RETURN 4000 'COMPLETER LE LEXIQUE 4010 CLS 4020 LOCATE 14,4:PRINT "NOUVEAUX MOTS." 4030 LOCATE 16,10:PRINT "D'ACCORD ?":TEX$="ON":GOSUB 50000 4040 IF K=2 THEN 4060 4050 N=NF+1:GOSUB 10000:NF=N-1 4060 RETURN 5000 'MODIFICATION 5010 CLS:LOCATE 14,4:PRINT "MODIFICATION." 5020 LOCATE 16,10:PRINT "D'ACCORD ?":TEX$="ON":GOSUB 50000:IF K=2 THEN 5900 5030 MODIF=1 5040 GOSUB 10000 5050 MODIF=0 5900 RETURN 6000 'ENREGISTREMENT 6010 CLS:LOCATE 2,5:PRINT "SAUVEGARDE SUR DISQUETTE OU CASSETTE" 6020 LOCATE 16,10:PRINT "D'ACCORD ?":TEX$="ON":GOSUB 50000 6030 IF K=2 THEN 1000 6080 OPENOUT "ANGLOFRA" 6090 WRITE #9,NF:FOR I=1 TO NF:WRITE #9,M$(I,0),M$(I,1):NEXT 6100 CLOSEOUT 6900 RETURN 7000 'TRI 7010 CLS:LOCATE 13,4:PRINT "TRI DU FICHIER:":LOCATE 16,11:PRINT "D'ACCORD ?":TEX$="ON":GOSUB 50000:IF K=2 THEN 7900 7020 LOCATE 16,21:PRINT "Patience...":T=0 7060 F=0:FOR J=1 TO NF 7070 IF M$(J,0) >= M$(J-1,0) THEN 7090 7080 FOR R=0 TO 1:M$(0,R)=M$(J,R):M$(J,R)=M$(J-1,R):M$(J-1,R)=M$(0,R):NEXT:F=1 7090 NEXT 7100 IF F THEN 7060 7900 RETURN 8000 'IMPRESSION 8010 CLS:LOCATE 5,10:PRINT "L'IMPRIMANTE EST-ELLE PRETE ?" 8020 TEX$="ON":GOSUB 50000:IF K=2 THEN 8900 8030 CLS:LOCATE 6,10:INPUT "A PARTIR DE QUEL NUMERO ? ",D$ 8040 D=VAL(D$):IF D=0 OR D>NF THEN 8030 8050 PRINT #8,CHR$(27);CHR$(64):FOR I=D TO NF 8060 PRINT #8,USING "###";I;:PRINT #8," ";M$(I,0);STRING$(16-LEN(M$(I,0)),".");" ";M$(I,1) 8070 NEXT:PRINT #8 8900 RETURN 10000 ' SAISIE 10020 WINDOW#0,1,40,7,25:PAPER 0:PEN 1:CLS 10030 WINDOW#1,1,40,1,5:PAPER#1,2:PEN#1,3:CLS#1 10040 LOCATE #1,2,2:PRINT #1,"Pour quitter ( Menu ) --> Q + ENTER" 10050 LOCATE #1,2,4:PRINT #1,"N";SPC(5);"ANGLAIS";SPC(11);"FRANCAIS" 10060 L=0 10070 IF MODIF THEN GOSUB 10500:GOTO 10200 10100 L=L+1:LOCATE 1,L:PRINT USING "###";N 10105 LOCATE 5,L:LINE INPUT "",M$(N,0) 10110 M$(N,0)=UPPER$(M$(N,0)):IF M$(N,0)="Q" THEN 10200 10120 IF LEN(M$(N,0)) >14 THEN M$(N,0)=LEFT$(M$(N,0),14) 10130 LOCATE 18,L:LINE INPUT ":",M$(N,1) 10140 M$(N,1)=UPPER$(M$(N,1)):IF LEN(M$(N,1)) >21 THEN M$(N,1)=LEFT$(M$(N,1),21) 10150 N=N+1:IF L=19 THEN CLS:L=0 10160 GOTO 10070 10200 WINDOW#0,1,40,1,25:CLS 10300 RETURN 10500 'FICHE A MODIFIER 10510 PEN 2:LOCATE 3,1:INPUT "QUEL NUMERO ?( Q pour Quitter ):",N$:N$=UPPER$(N$) 10520 IF N$="Q" THEN PEN 1:GOTO 10700 10530 N=VAL(N$):IF N=0 OR N>NF THEN 10510 10540 LOCATE 1,3:PRINT USING "###";N;:PRINT TAB(5);M$(N,0);TAB(19);M$(N,1) 10550 PEN 1 10560 LOCATE 5,5:LINE INPUT "",M$:M$=UPPER$(M$) 10570 IF M$="" THEN 10600 10580 IF LEN(M$) >14 THEN M$=LEFT$(M$,14) 10590 M$(N,0)=M$ 10600 LOCATE 19,5:LINE INPUT "",M$:M$=UPPER$(M$) 10610 IF M$="" THEN 10690 10620 IF LEN(M$) >21 THEN M$=LEFT$(M$,21) 10630 M$(N,1)=M$ 10690 CLS:GOTO 10510 10700 RETURN 50000 'REPONSE A UN MENU 50010 LT=LEN(TEX$):R$="" 50020 LOCATE 15-LT,24:PRINT "Reponse ("; 50030 FOR I=1 TO LT-1 50040 PRINT MID$(TEX$,I,1);",";:NEXT 50050 PRINT RIGHT$(TEX$,1);")";CHR$(154);CHR$(243);CHR$(207) 50060 TEX$=UPPER$(TEX$) 50070 WHILE R$="":R$=INKEY$:WEND 50080 R$=UPPER$(R$):K=INSTR(TEX$,R$) 50090 IF K=0 THEN R$="":PRINT CHR$(7);:GOTO 50070 50100 RETURN 64535 '------- FIN DE LISTING --------- |