Магнитные карты и ПК
Шрифт:
3000 REM (c)1996 Patrick GUEULLE
Эта программа абсолютно идентична LECTISO2, но она дает несколько более громоздкие результаты.
Файлы с расширением .CAR, полученные с помощью LECT75 и LECT210, естественно, не вызывают никаких проблем совместимости с программами данной книги. Однако это не всегда получается при их использовании в другом контексте, что, конечно, вправе сделать любой из наших читателей.
Ниже приводятся несколько весьма полезных служебных программ для решения небольших проблем, которые рано или поздно могут появиться.
Программа выравнивания
Как уже показывалось, наши программы считывания магнитных дорожек создают линейные — однострочные, то есть без специальных символов перехода на новую строку, — файлы с расширением .CAR. Это нисколько не мешает их отображению, например с помощью команды ТУРЕ операционной системы DOS, но может возникнуть желание их распечатать или сохранить в более удобном формате.
Для этого вместо программы текстового редактора более практично, по нашему мнению, использовать небольшую программу JUSTCAR.ВAS, трансформирующую любой файл .CAR в строго упорядоченный блок из 32 колонок.
10 REM — JUSTCAR. 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 NS: FOR INPUT AS #1
100 OPEN "carte.bak" FOR OUTPUT AS #2
110 DIM M(LOF(1)): CLS
120 L=0: WHILE NOT EOF(1)
130 INPUT#1,M(L)
140 PRINT#2,M(L);: L=L+1
150 WEND
160 CLOSE #1
170 OPEN NS FOR OUTPUT AS #1
180 G=0: FOR F=0 TO L-1
190 PRINT M(F);
200 IF M(F)=1 THEN PRINT#1,"1";
210 IF M(F)=0 THEN PRINT#1,"0";
220 G=G+1: IF G=32 THEN PRINT#1, G=0
230 NEXT F: PRINT
240 END
250 REM COPYRIGHT (c) 1996 Patrick GUEULLE
Отметим, что аварийный файл CARTE.ВАК был создан прежде всего для сохранения данных в случае сбоя, происшедшего во время обработки (разрыв сети и т. д.).
Кроме того, если имя исходного файла содержит расширение .CAR, у нас не будет необходимости его набирать, поскольку оно добавится автоматически.
В результате работы программы преобразованные данные заменяют содержимое исходного файла, при этом новый файл, хотя уже и выровненный, остается совместимым с программами данной книги.
Ниже показано, что получается при обработке файла TEST5.CAR с помощью программы JUSTCAR.
Программа инвертирования
Большинство считывающих устройств, начиная с описанных в данной главе, ожидают прохода карты в строго определенном направлении — как правило, это слева направо перед головкой. Иногда приходится проводить карту в обратном направлении (справа налево) или работать с нестандартными картами, записанными наоборот.
Программа INVERT.BAS способна «перевернуть» любой файл .CAR вне зависимости от его длины.
10 REM — INVERT.BAS —
20 KEY OFF: CLS
30 PRINT "имя файла, который следует перевернуть?"
40 INPUT N$: IF N$="" THEN END
50 FOR F=1 TO LEN(NS)
60 IF MID$ (N$,F,1)="." THEN 90
70 NEXT F
80 N$=N$+".CAR"
90 OPEN N$ FOR INPUT AS #1
100 OPEN "carte.bak" FOR OUTPUT AS #2
110 DIM M(LOF(1)): CLS
120 L=0: WHILE NOT EOF (1)
130 INPUT #1,M(L)
140 PRINT#2,M(L);: L=L+1
150 WEND
160 CLOSE #1
170 OPEN N$ FOR OUTPUT AS #1
180 FOR F=L-1 TO 0 STEP -1
190 PRINT M(F);
200 IF M(F)=1 THEN PRINT#1,"1";
210 IF M(F)=0 THEN PRINT#1,"0";
220 NEXT F: PRINT
230 END
240 REM COPYRIGHT (c)1997 Patrick GUEULLE
Ниже представлен результат, полученный с помощью файла-образца TEST5.CAR.