Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   readfile? (https://www.clubdelphi.com/foros/showthread.php?t=53884)

BetoAlonso 04-03-2008 07:08:27

readfile?
 
Saludos estimados foristas

Estoy utilizando el comando readfile para leer el contenido de una informacion a traves del puerto com, el codigo de lectura es el siguiente.

Código:

Function Leer_Puerto_Serie (ai_cantidad:Integer):String;
Var
lb_read:Boolean;
ls_cadena:String;
li_leido:dWord;
Begin
//read_msg = Space(amount_to_read+1)

lb_read:=ReadFile(serial_handle, ls_cadena, ai_cantidad,li_leido,nil);

If not lb_read Then
ShowMessage('Error Read Puerto Serie');

IF li_leido = 0 THEN
Showmessage('No Hay Dato en el Puerto Serie');

Result:=ls_cadena;

end;

al momento que deseo capturar el resultado me sale un error en tiempo de ejecucion Access Violation at addres.

alguien podria indicarme si hay un error en el codigo, muchas gracias.

este codigo lo copie de un post anterior

cHackAll 04-03-2008 14:58:51

El problema es que no se está inicializando la variable de retorno (string); una posible solucion es usar cadenas cortas;

Código Delphi [-]
function Leer_Puerto_Serie2(Count: Byte): ShortString;
var Bytes: Cardinal;
begin
 if not ReadFile(serial_handle, Result[1], Count, Bytes, nil) then
  ShowMessage('Error Read Puerto Serie');
 Result[0] := Bytes;
 if Bytes = 0 then
  Showmessage('No Hay Dato en el Puerto Serie');
end;

Y la otra es inicializar dicha cadena ls_cadena[1], con SetLength.. y una vez leido del puerto corregir su dimensión.

Saludos

BetoAlonso 05-03-2008 12:10:24

Muchas gracias cHackAll

Su opinion fue de mucha ayuda.


La franja horaria es GMT +2. Ahora son las 14:48:37.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi