Я пытаюсь передать файлы на старый PCjr через нуль-модемный последовательный кабель. Я создал быстрый сценарий BASIC для чтения данных из последовательного порта и записи их в файл, но я обнаружил, что каждый сохраняемый файл имеет в конце дополнительный байт 0x1a.
Похоже, это вызвано оператором CLOSE
, так как даже OPEN
ing и CLOSE
ing файл без записи чего-либо приводит к однобайтовому файлу.
Мне не нужен символ SUB в конце моих файлов, особенно двоичных! Есть ли альтернативный способ записи файлов, предотвращающий такое поведение?
(Использование отличного «PC-BASIC» в виртуальной машине Lubuntu для демонстрации, но, похоже, "вещь" во всех вариантах BASIC)
josh2112@jf334-lubuntu-vm:~$ pcbasic -b
PC-BASIC 2.0.0
(C) Copyright 2013--2018 Rob Hagemans.
60300 Bytes free
Ok
OPEN "O",#1,"TEST.TXT":PRINT#1,"hello world";:CLOSE:SYSTEM
josh2112@jf334-lubuntu-vm:~$ xxd TEST.TXT
00000000: 6865 6c6c 6f20 776f 726c 641a hello world.
CHR$(&H1A)
- это символEOF
(конец файла). Автор (?) PC-BASIC сказал следующее о добавлении поддержки для исключения символов EOF: Извините, у меня нет планов расширять синтаксис PC-BASIC или OPEN за пределы возможностей GW-BASIC - Я сосредоточен на максимальной совместимости с существующими программами. Возможно, вы могли бы использовать сценарий оболочки (или Python, или сам JS), чтобы удалить маркер конца файла & h1A из файлов, создаваемых вашей программой? - person Michael   schedule 18.10.2018