Re: RtlMoveMemory to read an integer from a file
From: Dmitriy Lapshin [C# / .NET MVP] (x-code_at_no-spam-please.hotpop.com)
Date: 03/10/04
- Next message: Dmitriy Lapshin [C# / .NET MVP]: "Re: communication via gpib-drivers in c#"
- Previous message: Dmitriy Lapshin [C# / .NET MVP]: "Re: Deployment Question"
- In reply to: Bill Mittenzwey: "RtlMoveMemory to read an integer from a file"
- Next in thread: Bill Mittenzwey: "Re: RtlMoveMemory to read an integer from a file"
- Reply: Bill Mittenzwey: "Re: RtlMoveMemory to read an integer from a file"
- Messages sorted by: [ date ] [ thread ]
Date: Wed, 10 Mar 2004 12:14:29 +0200
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: Dmitriy Lapshin [C# / .NET MVP]: "Re: communication via gpib-drivers in c#"
- Previous message: Dmitriy Lapshin [C# / .NET MVP]: "Re: Deployment Question"
- In reply to: Bill Mittenzwey: "RtlMoveMemory to read an integer from a file"
- Next in thread: Bill Mittenzwey: "Re: RtlMoveMemory to read an integer from a file"
- Reply: Bill Mittenzwey: "Re: RtlMoveMemory to read an integer from a file"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|