'错误文件模式'错误OPEN语句使用VB6读/写串行(COM)端口

时间:2014-03-05 16:38:14

标签: visual-studio serial-port basic qbasic

我尝试迁移旧的QBasic程序,从串行设备(COM端口)读取到Visual Basic 6.

我使用此代码(此原始代码也适用于VB6):

RESET
OPEN "COM1:2400,E,7,2,CS,DS,CD" FOR RANDOM AS #1
PRINT #1, "SND1"
LINE INPUT #1, P$

这适用于QBasic(发送'SND1'给我设备中的数据),但VB6在PRINT - 命令出错:'错误文件模式'(错误54)。

如果我将FOR RANDOM更改为FOR OUTPUT PRINT - 命令有效,那么LINE INPUT - 命令会产生相同的错误(当然)。

更新:

'mode'的唯一选项(参见:http://msdn.microsoft.com/en-us/library/aa266177(v=vs.60).aspx)是追加,二进制,输入,输出或随机。

2 个答案:

答案 0 :(得分:1)

尝试:

OPEN "COM1:2400,E,7,2,CS,DS,CD" FOR OUTPUT AS #1
PRINT #1, "SND1"
CLOSE #1
OPEN "COM1:2400,E,7,2,CS,DS,CD" FOR INPUT AS #1
LINE INPUT #1, P$

答案 1 :(得分:0)

此剪辑描述了使用GET / PUT访问QB中为RANDOM打开的文件:

OPEN "COM1:9600,N,8,1,BIN,CS0,DS0" FOR RANDOM AS #1
DO
    IF LOC(1) THEN
        GET 1, , x
        PRINT CHR$(x);
    END IF
    x$ = INKEY$
    IF LEN(x$) THEN
        IF x$ = CHR$(27) THEN END
        x = ASC(x$)
        PUT 1, , x
    END IF
LOOP
END