Моя задача: скопировать ASCII-файл в COM-порт так же просто, как это делает ДОСовская команда: "copy file.txt com1:", к примеру. Для решения этой задачи я решил использовать MSCOMM32.OCX. Правильно ли я делаю? (см. код ниже)
With MSComm1 .CommPort = 1 ' т.е. COM1 .Settings = "19200,o,8,1" ' 2-й параметр = o|e|n (odd|even|none) .EOFEnable = True .DTREnable = True .OutBufferSize = 1024 .PortOpen = True 'Инициализируем порт Open "C:\file.txt" For Input As #1 While Not EOF(1) Line Input #1, st .Output = st ' вроде это и есть отправка строки в порт Wend Close 1 .PortOpen = False ' Закрываем порт End With
Сомнения именно в отправке строки в порт: можно ли делать так (в цикле), или же надо после каждой отправки чего-то дожидаться, прежде чем переходить к следующему витку цикла, или же вообще нужно весь файл сразу загнать в одну строковую переменную и уже её отправлять в порт одним махом (без всяких циклов), или ещё как... Проблема в том, что мне не на чем это протестировать. По идее, посылаемый в порт файл - это программа на языке принтера этикеток. У меня же под рукой только LPT-шные принтера :(( Был бы хоть один COM-овский принтер, то тестирование было бы очень простым: если принтер печатает этикетку с заданным в ASCII-файле содержимым - то всё работает. Проверить Гипертерминалом не выходит: т.к. он захватывает порт, то мой код не работает.
Ответить
|