Como vc pode ver no topico anterior, tivemos também uma serie de duvidas sobre recepção via mscomm. Por aqui, por problemas de sincronização entre os dados entrantes e a leitura do buffer, havia sempre uma sobreposição de dados, o que causava o efeito que vc informa. Criamos uma variavel 'temp' que monta a string recebida, caracter a caracter, dessa forma:
- Código: Selecionar todos
.
.
MSComm1.InputLen = 1 'recebe 1 dado por vez
.
.
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
buffer as string
temp as string
temp = mscomm.input
buffer = buffer & temp ' concatena o novo caracter
end select
Bom, não estamos tratando texto por aqui, portanto as questões de como tratar 'space', 'line-feed' e 'carriage-return' eu não saberia como palpitar nesse momento. Penso, na minha ignorância, que deverá tratar esses controles à medida que forem chegando, dentro do loop de recepção...Mas quando vc souber, posta pra gente.
Abço.