UNIX 下面的 TXT 文档是用 CHR(13) 来换行的。
这个字符,只有这一种意思。
而 DOS 下面的 TXT 文档是用 CHR(10)+ CHR(13)来换行的。
使用 二进制读取时,不会出现系统自动转换的字符出来。
TXT 档转换。
1\UNIX -》 DOS 。
if = chr(13) then
'可以使用 vblf 这个常量来代替 chr(13)
写入
chr(10) 和 chr(13) '可以使用 VBCRLF 这个常量
elseif =chr(10) then
'忽略掉,或提示
else
原样写入
end if
2\DOS => UNIX
if = chr(10) then
'忽略掉
else
原样写入
end if
------------------
1\分析:
chr(10) 和 chr(13) 均为不可见的控制字符,ASCII规定 <32 的均为 控制字符。32为空格
所以,chr(13)在 UNIX 里,只有一种意思,换行。控制格式的。
UNIX 里以 chr(13) 为换行。那行转换为 DOS 时,就必须按DOS 的规定,再到 chr(13) 前面补一个 chr(10)。
2、分析:
DOS 的TXT 档是, CHR(10)+CHR(13) ,去掉一个 chr(10) 就剩 chr(13)了,就正好是 UNIX 里的换行符。
3、程序错误控制。
UNIX 转 DOS ,二个判断,不存在卡住的情况。单字符转双字符,也没办法再补充其它辅助判断字符。
DOS,转 UNIX,一个判断,但存在辅助判断字符,可以再进行辅助判断。
if =chr(10) then
if 下一个字符= chr(13) then
写入 chr(13)
else
写入chr(10)
写入刚读的下一个字符
else
原样写入
end if