Чтение онлайн

ЖАНРЫ

Магнитные карты и ПК
Шрифт:

Познакомиться с работой DECS.BAS можно, предложив ей декодировать файл TEST5 .CAR, который есть на сайте www.dmk.ru.

10 REM — DEC5.BAS —

20 KEY OFF: CLS

30 PRINT "Имя декодируемого файла?";

40 INPUT N$: IF N$="" THEN END

50 FOR F=1 TO LEN(N$)

60 IF MID$(N$,F,1)="." THEN 90

70 NEXT F

80 N$=N$ +".CAR"

90 OPEN N$ FOR INPUT AS #1

100 L=INT(LOF(1)/2)-1

110 DIM T(LOF (1))

120 F=1:WHILE NOT EOF(1)

130 INPUT#1,T(F): F=F+1

140 WEND

150 J=1

160 IF T(J)<>1 THEN 220

170 IF T(J+1)<>1 THEN 220

180 IF T(J+2)<>0 THEN 220

190 IF T(J+3)<>1 THEN 220

200 IF T(J+4)<>0 THEN 220

210 K=J: GOTO 230

220 J=J+1: GOTO 160

230 C$=""

240 FOR F=0 TO 4

2S0 IF T(K+F) =0 THEN C$=C$+"0"

260 IF T(K+F) =1 THEN C$=C$+"1"

270 NEXT F

280 GOSUB 310

290 K=K+5: IF K>L-1 THEN END

300 GOTO 230

310 IF C$ = "11010" THEN PRINT "{Start}"

320 IF C$ = "10110" THEN PRINT " {sep}"

330 IF C$ = "11111" THEN PRINT "{end}"

340 IF C$ = "01011" THEN PRINT "{10}";

350 IF C$ = "00111" THEN PRINT "{12}";

360 IF C$ = "01110" THEN PRINT "{14}";

370 IF C$ = "00001" THEN PRINT "0";

380 IF C$ = "10000" THEN PRINT "1";

390 IF

С$ = "01000" THEN PRINT "2";

400 IF C$ = "11001" THEN PRINT "3";

410 IF C$ = "00100" THEN PRINT "4";

420 IF C$ = "10101" THEN PRINT "5";

430 IF C$ = "01101" THEN PRINT "6";

440 IF C$ = "11100" THEN PRINT -7";

450 IF C$ = "00010" THEN PRINT "8";

460 IF C$ = "10011" THEN PRINT "9";

470 RETURN

480 REM (с) 1996 Patrick GUEULLE

ДЕКОДИРОВАНИЕ
СЕМИБИТНЫХ СИМВОЛОВ

Программа DEC7.BAS выполняет функцию, аналогичную выполняемой программой DEC5, но с алфавитно-цифровыми файлами, символы которых закодированы семью битами.

10 REM — DEC7.BAS —

20 KEY OFF: CLS

30 PRINT "Имя декодируемого файла?";

40 INPUT N$: IF N$="" THEN END

50 FOR F=1 TO LEN(N$)

60 IF MID$ (N$,F,1) = "." THEN 90

70 NEXT F

80 N$=N$+".CAR"

90 OPEN N$ FOR INPUT AS #1

100 L=INT(LOF(1)/2)-1

110 DIM T (LOF (1))

120 F=1: WHILE NOT EOF(1)

130 INPUT#1,T(F): F=F+1

140 WEND

150 J=1

160 IF T(J)<>1 THEN 240

170 IF T(J+1)<>0 THEN 240

180 IF T(J+2)<>1 THEN 240

190 IF T(J+3)<>0 THEN 240

200 IF T(J+4)<>0 THEN 240

210 IF T(J+5)<>0 THEN 240

220 IF T(J+6)<>1 THEN 240

230 K=J: GOTO 250

240 J=J+1: GOTO 160

250 C$=""

260 FOR F=0 TO 6

270 IF T(K+F)=0 THEN C$=C$+"0"

280 IF T(K+F)=1 THEN C$=C$+"1"

290 NEXT F

300 GOSUB 330

310 K=K+7: IF K>L-1 THEN END

320 GOTO 250

330 IF C$="1010001" THEN PRINT "{start}"

340 IF C$="0111110" THEN PRINT "{sep}"

350 IF C$="1111100" THEN PRINT "{end}"

360 IF C$="0000001" THEN PRINT " ";

370 IF C$="1000000" THEN PRINT "{1H}";

380 IF C$="0100000" THEN PRINT "{2H}";

390 IF C$="1100001" THEN PRINT "{3H}";

400 IF C$="0010000" THEN PRINT "{4H}";

Поделиться с друзьями: