Why does BASIC append 0x1a to the end of a file?
我正试图通过零调制解调器串行电缆将文件传输到旧PCJR。我拼凑了一个快速的基本脚本,从串行端口读取数据并将其写入文件,但我发现我保存的每个文件末尾都有一个额外的字节0x1A。
这似乎是由
我不希望在我的文件末尾有子字符,尤其是二进制字符!是否有另一种方式来写入阻止此行为的文件?
(在lubuntu虚拟机中使用优秀的"pc-basic"进行演示,但这在所有basic变体中似乎都是一件"事情")。
1 2 3 4 5 6 7 8 | 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. |
也许这可以帮助:
批处理脚本,用于合并结尾不带十六进制字符1a的文件
本文讨论了DOS如何使用EOF指示器处理复制数据,以及标志如何工作。你能用指示的开关批量复制这些文件吗?
按问题编辑作者:是的,就是这样。需要的特定命令是
函数将字符串写入数据输出文件,但不带尾随的EOF字符:
1 2 3 4 5 6 | OPEN"B", #1,"TEST.TXT" X$ ="hello world" FOR X = 1 TO LEN(X$) Z$ = MID$(X$, X, 1) PUT #1, X, Z$ NEXT |