Ya, pero resulta que fread() devuelve el número de bytes leídos.
Con lo cual la cosa quedaría así.-
if( 4 != fread(hHandle, @cBuffer, 4) )
MsgAlert( "Error Leyendo el Fichero." )
endif
Te recomiendo que te leas el último post de: [Boton "Cancelar" en OnExit].
Un saludo
Xavi
Roque Lopez escribió:
> Amigos:
>
> Al parecer el problema esta en la forma.
>
> El problema radicaba en la forma como tomaba el dato del archivo::
> usaba : cBuffer:= freadstr(hHandle,4)
>
> trataba el dato como un character, y la función freadstr se trunca cuandio
> encuebrea chr(0)
>
> Asi queda: cBufert := fread(hHandle, @cByffer, 4)
>
>
> y quedo solucionado el asunto,,,}
>
>
> Muchas Gracias..
>
>
> Roque Lopez
>
>
> "Carlos Mora" <
carlos.mora@atisa.es> escribió en el mensaje
> news:[email=
45a4f7e0@news.xailer.com...]
45a4f7e0@news.xailer.com...[/email]
>> Jose F. Gimenez escribió:
>>> Carlos,
>>>
>>>>> POR EJEMPLO: 88576 ME ENTREGA NULO.
>>>> 88576 es un valor que no se puede representar con enteros de 32 bits.
>>>> Probablemente ese sea el problema.
>>> No, me temo que te has confundido. No se puede representar en 16 bits,
>>> pero sí en 32 bits.
>>>
>>> Su valor en hexadecimal es 00015A00, y por lo tanto, el primer caracter
>>> de la cadena resultante es un nulo. Vamos, aclarándolo aún más, la cadena
>>> resultante es exactamente chr(0)+chr(1)+chr(90)+chr(0)
>>>
>> Cierto, me confundí con los 16 bits de i2bin(). Pero no hay problema pq
>> siempre hay alguien atento más vispao que uno

>>
>> Saludos,
>>
>> Carlos
>
>