[Lazarus] Loading an integer into a byte array

Dave Coventry dgcoventry at gmail.com
Thu Jan 8 15:46:09 CET 2009


Thanks Bernd.

Won't this mean a different file on big endian and little endian machines?

2009/1/8 Bernd Mueller <mueller.b at gmx.net>:
> Dave Coventry wrote:
>> I have a file into which I want to put a long integer:
>>
>> 00 00 19 7A
>>
>> The file expects the value in the form:
>>
>> buffer[0]:=122;
>> buffer[1]:=25;
>> buffer[2]:=0;
>> buffer[3]:=0;
>>
>> I am then intending to write this buffer to the file
>>
>> FS.Writebuffer(buffer,4);
>>
>> Is there a way of loading the buffer directly before writing?
>
> You could use the Absolute directive to map a longint variable to your
> buffer. Not pretty, but fast ;-)
>
> procedure LoadBuffer;
> var
>    Buffer: Array[0..127] of Byte;
>    l: Longint Absolute Buffer;
> begin
>    l:= 6522;
> end;
>
> Regards, Bernd.
> _______________________________________________
> Lazarus mailing list
> Lazarus at lazarus.freepascal.org
> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
>



More information about the Lazarus mailing list