Ver Mensaje Individual
  #2  
Antiguo 03-02-2008
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
El control de flujo se configura en la estructure DCB al igual que el resto de parámetros. En delphi todo un grupo de miembros de esa estructura que midem solo uno o dos bits se juntan dentro de un solo parametro llamado "flags". En resumen si no quieres tener ningún tipo de control de flujo utiliza algo como esto:
Código Delphi [-]
DCB.Flags:= 01; // El "1" es para poner el flag "binary" a 1. El resto de flags los dejamos a cero

De todas formas no creo que el problema que comentas venga del control de flujo, ya que este solo actúa cuando el buffer se llena. Lo que parece que esta pasando es que no hay suficientes bytes almacenados en el buffer cuando llamas a la función readfile, por lo que la función no termina, esperando hasta recibir los bytes que le estas pidiendo.

Una forma de solucionarlo es utilizar la función ClearCommError, que entre otras cosas nos permite saber cuantos bytes hay en el buffer esperando para ser leídos. Así una vez que sabemos cuantos bytes hay en el buffer llamamos a la función ReadFile para que lea solo ese numero de bytes, asegurándonos de que la función terminara inmediatamente.
Responder Con Cita