- Любовные романы
- Фантастика и фэнтези
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Магнитные карты и ПК - Патрик Гёлль
Шрифт:
Интервал:
Закладка:
2165 IF C$="0110010" THEN PRINT "F";
2166 IF C$="1110011" THEN PRINT "G";
2167 IF C$="0001011" THEN PRINT "H";
2168 IF C$="1001010" THEN PRINT "I";
2169 IF C$="0101010" THEN PRINT "J";
2170 IF C$="1101011" THEN PRINT "K";
2171 IF C$="0011010" THEN PRINT "L";
2172 IF C$="1011011" THEN PRINT "M";
2173 IF С$="0111011" THEN PRINT "N";
2174 IF C$="1111010' THEN PRINT "O";
2175 IF C$="0000111” THEN PRINT "P";
2176 IF C$="1000110" THEN PRINT "Q";
2177 IF C$="0100110" THEN PRINT "R";
2178 IF C$="1100111" THEN PRINT "S";
2179 IF C$="0010110" THEN PRINT "T";
2180 IF C$="1010111" THEN PRINT "U";
2181 IF C$="0110111" THEN PRINT "V";
2182 IF C$="1110110" THEN PRINT "W;
2183 IF C$="0001110" THEN PRINT "X";
2184 IF C$="1001111" THEN PRINT "Y";
2185 IF C$="0101111" THEN PRINT "Z";
2190 IF C$="1101110" THEN PRINT "{3BH);
2191 IF C$="0011111" THEN PRINT "{3DH);
2192 IF C$="1011110" THEN PRINT "{3EH);
2193 IF C$="1111111" THEN PRINT "{40H};
2999 RETURN
3000 REM (c) 1996 Patrick GUEULLE
LECTISO1.BAS — основная программа, которая посредством вызова
LECT210.EXE выполняет следующие операции:
• считывает 630 бит с дорожки ISO 1 и создает файл CARTE.CAR;
• отображает считанные 630 бит;
• отображает соответствующие алфавитно-цифровые символы.
Ниже представлен результат работы программы для частного случая файла TEST7.CAR, содержащегося на сайте www.dmk.ru (мы намеренно убрали несколько нулей заполнения).
Считывание дорожки ISO 3
Как и ISO 1, дорожка ISO 3 имеет плотность записи 210 bpi, но она содержит цифровые данные, которые закодированы пятиразрядным кодом.
Считывание производится при помощи программы LECT210.EXE, но считанные 630 бит на этот раз соответствуют 126 группам по 5 бит. На самом деле в записи может содержаться 107 цифр плюс 95 нулей заполнения.
Для запуска считывающей программы и декодирования требуется основная программа, которая по аналогии с LECTISO1 и LECTISO2 получила название LECTISO3.BAS.
10 REM — LECTIS03. BAS —
20 KEY OFF: CLS: PRINT: PRINT: PRINT: PRINT: PRINT: PRINT: PRINT: PRINT: PRINT
30 SHELL "LECT210.EXE"
40 OPEN "carte.car" FOR INPUT AS #I
50 DIM T(630)
60 FOR F=1 TO 630
70 INPUT #1,T(F)
80 NEXT F
90 J=1
100 IF T(J)<>1 THEN 160
110 IF T(J+1)<>1 THEN 160
120 IF T(J+2)<>0 THEN 160
130 IF T(J+3)<>1 THEN 160
140 IF T(J+4)<>0 THEN 160
150 K=J: GOTO 200
160 J=J+1: GOTO 100
200 C$=""
210 FOR F=0 TO 4
220 IF T(K+F)=0 THEN C$=C$ +"0"
230 IF T(K+F) =1 THEN C$=C$+"1"
240 NEXT F
250 GOSUB 2000
260 K=K+5: IF K>623 THEN END
270 GOTO 200
2000 IF C$="11010" THEN PRINT "{start}"
2010 IF C$="10110" THEN PRINT "{sep}"
2020 IF C$="11111" THEN PRINT "{end}"
2030 IF C$="01011" THEN PRINT "{10}";
2040 IF C$="00111" THEN PRINT "{12}";
2050 IF C$="01110" THEN PRINT "{14}";
2060 IF C$="00001" THEN PRINT "0";
2070 IF C$="10000" THEN PRINT "1";
2080 IF C$="01000" THEN PRINT "2";
2090 IF C$="11001" THEN PRINT "3";
2100 IF C$="00100" THEN PRINT "4";
2110 IF C$="10101" THEN PRINT "5";
2120 IF C$="01101" THEN PRINT "6";
2130 IF C$="11100" THEN PRINT "7";
2140 IF C$="00010" THEN PRINT "8";
2150 IF C$="10011" THEN PRINT "9";
2999 RETURN
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.
Программа преобразования в формат .CRD
Автор этой книги, естественно, не единственный в мире любитель магнитных карт, тем более что этот «вид спорта» особенно популярен в США. За океаном предпочтение отдают файлам формата .CRD,который отличается от .CAR отсутствием пробелов.
Поскольку в Internet можно встретить интересные программы, использующие формат .CRD, нам показалось полезным снабдить читателей служебной программой, способной сделать файлы .CAR совместимыми с ними. Речь идет о программе CARTOCRD.BAS.
В том виде, в котором она написана, эта небольшая программа может преобразовать файл CARTE.CAR, который был только что считан, в файл CARTE. CRD.
10 REM — CARTOCRD.BAS —
20 CLS: KEY OFF
30 PRINT "Преобразование файла CARTE.CAR в CARTE.CRD"
40 OPEN "carte.car" FOR INPUT AS #1
50 OPEN "carte.crd" FOR OUTPUT AS #2
60 IF EOF(1) THEN 110