Re: RtlMoveMemory to read an integer from a file
From: Bill Mittenzwey (bmittenzwey
Date: 03/10/04
- Next message: Ignacio Machin \( .NET/ C# MVP \): "Re: Executing a program while displaying a model window"
- Previous message: Peter Luschny: "'+' sign in non-negative numeric"
- In reply to: Dmitriy Lapshin [C# / .NET MVP]: "Re: RtlMoveMemory to read an integer from a file"
- Messages sorted by: [ date ] [ thread ]
Date: Wed, 10 Mar 2004 09:24:31 -0600
Thanks to both posts. That really simplifies things.
"Dmitriy Lapshin [C# / .NET MVP]" <x-code@no-spam-please.hotpop.com> wrote
in message news:eNBt6hoBEHA.4080@TK2MSFTNGP09.phx.gbl...
> You can also use a BinaryReader's ReadInt32 or ReadInt16 method if you
need
> to read an int. There are also ReadDouble and ReadDecimal methods.
>
> --
> Dmitriy Lapshin [C# / .NET MVP]
> X-Unity Test Studio
> http://www.x-unity.net/teststudio.aspx
> Bring the power of unit testing to VS .NET IDE
>
> "Bill Mittenzwey gateway edi.com>" <bmittenzwey<ATremove space> wrote in
> message news:OjdbWdiBEHA.3360@TK2MSFTNGP11.phx.gbl...
> > I am trying to read a string of bytes out of a file and convert them
into
> an
> > int. I can make it work in Visual Fox (see below), but I can't seem to
get
> > the same code to work in c# (see below the fox sample).
> >
> > Does anyone recognize this or can anyone let me know what I am doing
> wrong?
> > Is there a better way than the WinAPI?
> >
> > in fox I can do this:
> >
> > declare VOID RtlMoveMemory in win32api Double @Dest, Char @Src, Size_T
> > BytesToCopy
> >
> > c = CHR(0) + CHR(0) + CHR(0) + CHR(0) + CHR(0) + CHR(0x80) + CHR(0x50)+
> > CHR(0x40)
> >
> > VariableDecimals= 0
> > *This will round to 0 decimals.
> > set decimals to (VariableDecimals)
> > VariableValue = 10^(-VariableDecimals)
> > VariableLength = 8
> > =RtlMoveMemory(@VariableValue, @c, VariableLength )
> >
> > The value of VariableValue will be 66
> >
> >
> > In c#:
> > At the top of the class:
> > [DllImport("kernel32.dll")]
> >
> > public static extern void RtlMoveMemory(ref double dest, ref string src,
> > long bytesToCopy);
> >
> > public static decimal convertNumber(string strValue, int varDec)
> >
> > {
> >
> > double varValue = Math.Pow(10,-1*varDec);
> >
> > int varLen = 8;
> >
> >
> > RtlMoveMemory(ref varValue, ref strValue, varLen);
> >
> > decimal outVal = Convert.ToDecimal(Math.Round(varValue,varDec));
> >
> > return outVal;
> >
> > }
> >
> >
> >
> >
> >
> >
>
- Next message: Ignacio Machin \( .NET/ C# MVP \): "Re: Executing a program while displaying a model window"
- Previous message: Peter Luschny: "'+' sign in non-negative numeric"
- In reply to: Dmitriy Lapshin [C# / .NET MVP]: "Re: RtlMoveMemory to read an integer from a file"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|