[Gambas-user] gb3: writing variables to a string using a memory stream and pointer
Benoît Minisini
gambas at ...1...
Tue Sep 13 10:59:47 CEST 2011
> On 09/12/2011 10:24 PM, Benoît Minisini wrote:
> >>> ' Create data string.
> >>> DataPointer = Alloc(8)
> >>> Mem = Memory DataPointer For Read Write
> >>> Write #Mem, (Server.DateCurrent + Server.DateUTC) As Float
> >>> Data = Read #Mem As Float
> >>> Print "Original: "& (Server.DateCurrent + Server.DateUTC)
> >>> Print "From Mem: "& Float@(Data)
> >>> Print "Reversed: "& Float@(Convert.Reverse(Data))
> >>
> >> Your code cannot work : Data receives a Float ( Read #Mem As Float ),
> >> and later is used as a Pointer ( Float@(Data) ).
> >
> > Please provide some real code that I can compile!
>
> I put together a small project using the same variables, declarations,
> assignments, etc., as the actual program. Interestingly, sometimes the
> "From Mem" and "Reversed" results are the same, other times they are
> different. They also seem to cycle between the same values instead of
> changing based on the current time. Something really weird's going on.
> Hopefully I'm just being an idiot and there's a simple solution.
Note that if you write to #Mem, the #Mem file pointer (which is the memory
address) increases, so the next Read is done eight bytes after!
--
Benoît Minisini
More information about the User
mailing list