03.07.2013 Views

Magazine Pom's : la collection

Magazine Pom's : la collection

Magazine Pom's : la collection

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Le programme "'utilitaire" listé ciaprès<br />

permet de lire à ]' écran ou<br />

d'imprimer tout fichier TEXT séquentiel<br />

(fichier de données ou fichier de<br />

traitement de texte).<br />

Il est suffisamment simple pour se<br />

suffire à lui-même sur le p<strong>la</strong>n des explications.<br />

Notons simplement le rôle<br />

Programme LI-TEXTE<br />

5<br />

REM<br />

10 REM<br />

20 REM<br />

30 REM<br />

40 REM<br />

Lecture de fichiers TEXT<br />

de <strong>la</strong> sous-routine cl' erreur qui<br />

commence en 460. Cette dernière<br />

penne! d'une part de détecter <strong>la</strong> fin<br />

du fichier (BOOS) el, d'autre part, de<br />

traiter le problème des caractères de<br />

contrôle qui déclenchent une "ILLE­<br />

GAL QUANTIlY ERROR" (code erreur<br />

53) à l'appel de <strong>la</strong> fonction<br />

ASC. La possibilité d'avoir à lire un<br />

(Inspiré de Nibble Express,<br />

Volume 11)<br />

•••••••••••••••••••••<br />

•• LECTURE DE ••<br />

•• FICHIERS TEXTES ••<br />

•• SEQUENTIELS ••<br />

•••••••••••••••••••••<br />

45 POKE 768, 104: POKE 769,168: POKE 770<br />

,104 : POKE 771 , 166: POKE 772,223:<br />

POKE 773,154: POKE 774,72: POKE<br />

775 ,152: POKE 776,72: POKE 777,96<br />

50 TEXT : HOME<br />

60 ON ERR GOTO 460<br />

70 OS ;; CHRS (4)<br />

BO RS = CHRs (13)<br />

90 CAS '" CHRS (1)<br />

100 AS = ,. 1# LECTURE FICHIERS TEXTE #<br />

110 VTAB 3: HTAB 20 LEN (AS) 1 2: IN<br />

VERSE : PRINT AS: NORMAL<br />

130 FOR X ;; 1 TO 40: PRINT ":";: NEXT<br />

140 PRINT : PRINT "PERMET AFFICHAGE A L<br />

'ECRAN DE FICHIER T_"<br />

150 PRINT : INVERSE : PRINT "VOULEZ-vOU<br />

S LE 'CATALOG' (QIN) ";: GET CS:<br />

NORMAL<br />

151 If CS ;; "N" THEN 170<br />

152 IF CS = "0" TH EN PRINT : PRINT : 1<br />

NVERSE : PRINT "ORIVE OU <br />

1 ";: GET X9 : NORMAL<br />

154 IF XS = "1" THEN PRINT RS + DS;"CA<br />

TALOG ,D1"<br />

156 IF XSi '" "2" THEN PRINT RSi ... DS;"CA<br />

TALOG ,02"<br />

170 PRINT : PRINT<br />

175 HTAB 25: PRINT " --> STOP": PRIN<br />

T<br />

180 INVERSE : INPUT "NOK DU FICHIER TEX<br />

TE 1 ";NFS : NORMAL<br />

185 IF NFS -= . ... THEN 150<br />

190 IF NF9 ;; "S" THEN 500<br />

Un bug de Pascal Apple (version IL 1) ?<br />

200<br />

210<br />

220<br />

320<br />

330<br />

340<br />

350<br />

360<br />

370<br />

3aO<br />

400<br />

410<br />

420<br />

430<br />

440<br />

445<br />

447<br />

450<br />

455<br />

460<br />

4ao<br />

4a5<br />

490<br />

Jean-François Schwartz<br />

fichier TEXT comportant de nombreux<br />

caractères de cette nature justifie<br />

par ailleurs J' emploi de <strong>la</strong> petite<br />

routine en <strong>la</strong>ngage-machine présentée<br />

dans le manuel de référence de<br />

l'Applesoft (page 136) en vue de<br />

supprimer les problèmes résultant<br />

d'appels trop fréquents à une procédure<br />

ONERR.<br />

PRINT : INVERSE : PRINT "IMPRESSION<br />

(O/N) ";: GET S9: NORMAL<br />

IF SS = .. a" THEM PRINT RS + os; "PR<br />

#1": PRINT CHRS (9);"80N" : REt'(<br />

IMPRIMANTE SLOT 1<br />

PRINi<br />

PRINT DS; "OPEN ";NFS<br />

PRINT OS; "READ ";NFS<br />

La =<br />

....<br />

GET CS<br />

IF CS = RS THEN 410<br />

VC = ASC (CS)<br />

IF VC > 96 AND VC < 123 THEN CS ;;<br />

CHRS (VC - 32)<br />

LS = LS + Cs: IF LEN (LS) = 255 THE<br />

N 410<br />

GOTO 350<br />

PRINT RS;OS<br />

PRINi CA9;LS<br />

GOTO 330<br />

PRINT "F'IN DU FICHIER TEXTE"<br />

PRINT DS; "CLOSE ";NFS<br />

PRINT OS;"PR/IIO"<br />

PRINT : PRINT "AUTRE FICHIER 1 (O/N<br />

)";: GET Fa: IF Fa = "0" THEN GO<br />

Ta 150<br />

IF FS ; "N" THEN 500<br />

CALL 768: BOO = PEEK (222) : IF BOO<br />

= 53 THEN 390<br />

IF BOO = 5 TH EN GOTO 440<br />

HOHE : VTAB 10: HTAB 10<br />

PRINT "ERREUR NUMERO ";BOO:" SURVEN<br />

UE ."<br />

495 FOR 1 s 1 TO 2000: NEXT 1<br />

500 REM ••• FINIBOOT •••<br />

Le programme ci-contre, quand on l'exécute, affiche "- -2768 " !<br />

505 HOHE :ZZ$ " " -JI. F I N /II ": VTAB 10:<br />

HTAB 20 - LEN (ZZS) 1 2: INVERS<br />

E : PRINT ZZ9: NORMAL<br />

510 VTAB 15: HTAB 5: PRINT .. 'NOUVELLE 0<br />

ISQUETTE 1 OIN ";: GET Ail: IF LE<br />

FTS (AS,l) < > "0" THEN HOHE :<br />

END<br />

515 PRINT CHRS " CHR6 (4);··PRII'6"<br />

PROGRAM ESSAI :<br />

VAR I:INTEGER :<br />

BEG IN<br />

END .<br />

1::-16384- 16384<br />

WRITELN (I) ;<br />

<strong>Pom's</strong> n" 9 37

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!