I'm trying to convert old code to VB in VS2005. The code I'm working on is used to store values in a string, which will then be handed to a proprietary scramble function. This function is a given in this case. I've already switched from a string to an array of bytes in my .NET code.
The old code (VBA) was using a string value to store the data, example function for Double value:
Private Function DoubleToStr(ByVal value As Double) As String
Dim Bytes(7) As Byte ' 0-7 Double is 8 bytes
Dim n As Long
CopyMemory(Bytes(0), value, 8)
DoubleToStr = ""
For n = 0 To UBound(Bytes)
DoubleToStr = DoubleToStr & Chr(Bytes(n))
Next n
End Function
The code basically copies the memory contents (using API call CopyMemory) of the memory (held by the double variable) to the memory held by a byte array. It then reads the byte array and converts it into a string. Workarounds could be to convert a bool or long to a string, though that would be expensive in terms of memory/storage eg. 1234564787 would be 10 bytes in a string where as a long is only 4 bytes (factor 2.5 increase).
How to retain the original precision? Converting it to a string would result in endless numbers. Another problem (at least I think it could be) is that in VBA the variables are rather simple, but in .NET they are all objects, so how to retrieve the actual memory location of the value? let alone garbage collection moving stuff around. How to get those variables stored in my byte array?
I need to convert hex values aa 01 00 17 f4 2f (as contained in byte array FrameData) to display in a label control as AA:01:00:17:F4:2F
HexDump(FrameData(2)) converts the aa (which has been converted to Decimal 170) into 31 37 30 !
similarly I need to convert hex data ('02 00' contained in byte array FrameData) as 0x0200."0x" & FrameData(1) + FrameData(2) displays the data as 0x20. How would I convert the '02 00' hex data to display as 0x0200?
How would I copy/convert a string containing an ascii representation of hex values in to a byte array containing the actual hex values? For example, I have a variable containing the hex values delimited by spaces (I can change the delimiter):
I am trying to create a "Generate Number" application. It needs to generate numbers ( 1 - 100 ) and add them to the array. I have the numbers generated already and outputed into a list box. but I am not sure on how to add them to the array.
I have generated the numbers using for...next and do while loops. But I haven't been able to get the right syntax to be able to add the numbers into the array. [code]/...
I have a device with upon serial communication , it send the data as HEX values , (eg, C020042ABD0F91A103E400F929EBC) . I use the following code to get data from the serial port.
Dim fStream As New FileStream(sFileName, FileMode.CreateNew) ' creates new file Dim bw As New BinaryWriter(fStream) System.Threading.Thread.Sleep(1500) ComTd.Read(data, 1, bCount)
I have a device with upon serial communication, it send the data as HEX values, (e.g., C020042ABD0F91A103E400F929EBC). I use the following code to get data from the serial port.
Dim fStream As New FileStream(sFileName, FileMode.CreateNew) ' creates new file Dim bw As New BinaryWriter(fStream) System.Threading.Thread.Sleep(1500) ComTd.Read(data, 1, bCount) Dim bCount As Integer = 4119 ' it is the size of the chunk not block size Dim data(bCount) As Byte [Code] .....
I have the following code which obtains the compass direction from a degree value. I'm new to VB.Net and was wondering what is the best way to store the values, in an Enum or an Array?
I am attempting to teach myself visual basic and I cannot figure out how to send a calculated value (on a button click) into a one-dimension array and then recall the last five values in a message box when the user exits.
Here's what I have:
Public Class frmInvoiceTotal Dim totals(4) As Decimal Private Sub btnCalculate_Click(ByVal sender As System.Object,
I am a beginner at VB.net programming. this score calculator. The application is suppose to total up a sum of numbers added, show the count, and an average of the numbers inputted. I try using an array to store the inputted values. Now I'm have issues with my loop keeping track of the total. Also, how do I clear out the array to start over?
is that instead of receiving data from one row and assigning it to the same array Im receiving data from multiple rows, but the information is the same because its from the same one column from the database. The error I keep getting is 'index out of bounds of array'
here is the code
What it does is it loops through once and retrieves the first value from the db then it throw the exception when it goes to retrieve the second value.
Dim qBkNum As String = "SELECT BookingNum FROM Bookings WHERE BookingID = '1'" Dim bkNum(5) As String Try
I'm creating an emulator for a device to simulate wave forms. My challenge is that when I try to convert the output of the following code, I can't convert the Math.Sin's double output into byte values that lend themselves to the byte array format required by an existing graphing control as listed at bottom below. I''m not sure how to handle this when the sin function creates negative values but the byte values will need to be positive and basically 'shifted up' so that anything over 127 is negative. (0 - 255) unsigned. BitConverter.GetBytes has been suggested but THIS is the result of that attempt.
In my example, i use a class array to which I assign values looping through textboxes in my form. Using the button Store (btnStore) the values are perfectly assigned to the array (i use an msgbox to check).The problem is that when i created another button (btnTest) to test if these values can be read outside the btnstore code, I get an error (NullReferenceException unhandled) which informs me to use the new keyword (cannot be used with arrays).I suppose the same applies when trying to access the array from another form. The question is how can i assign the values to the array "forever" and be accessed from "everywhere" in my program ?(tried public, friend, redim preserve the array with no luck).
I am trying to Convert a data field stored as IMAGE ( SQL Server 2000) using Java to a byte array using VB.NET Java uses signed numbers for a Byte array where as VB dosent. Can somone point me to how I can covert java byte array to VB byte array?
I have 2 byte arrays. I want to merge these two byte array into 1 byte array.Usually, I just create a new byte array with length = byte array #1 + byte array #2. Then copy byte array #1 and #2 to the new byte array.do I have more efficient way to merge 2 byte array using VB.NET and .Net 4?
I would like to create a function so that I can pass a string and it will return me the binary value, I will use this later in other parts of the script but I am getting an error that I don't understand.
Private Function ConvertToMD5(ByVal OldPassword As String) As Byte Dim NewPassword As String = "" 'The string we wish to encrypt
[code]....
On the "Return hashedDataBytes I get "Value of type '1-dimensional array of Byte' cannot be converted to 'Byte'"
I have a byte array that I convert into a string like so Dim byt As Byte() = New Byte(255) {} s = New String(Encoding.ASCII.GetChars(byte))My question is when I look at the string in a debuger its clearly a normal string but when I compare it to what I know its supposed to be it doesnt equal. So i did a quick check and for some reason its return a string thats the length of 256 characters. So i did a s.trim and it still is 256 characters long.
given my code below, I'm trying to figure out how to create an array of 1 byte containing 7 bits. So the byte in the array would contain 0111111 to correspond to mData_Out's boolean values. How would I change the following code? [Code]
I am trying to get a count of all the times a byte sequences occurs in another byte sequences. It cannot however re-use a bytes if it already counted them. For example given the string let's assume the byte sequence was k.k it would then find only 3 occurrences rather than 5 because they would be broke down like: [k.k].[k.k].[k.k]. and not like [k.[k].[k].[k].[k].k] where they over lap and essentially just shift 2 to the right.
Ideally the idea is to get an idea how a compression dictionary or run time encoding might look. so the goal would be to get down to just 2 parts, as (k.k.k.) is the biggest and best symbol you can have.
I have a DEM file(Digital Elevattion Model File) and I am trying to open the file,where we have Latitude and Longitude values inside the DEM file.And, Now I have opened the file using Filestream and Read the file using BinaryReader.But, I am having a trobule in getting the values of Latitude and Longitude.I am getting Byte values randomly as 1,202,31,271 etc.But, we dont have latitude and longitude values more than 180,and also I am not getting 16 bit UInt values.For example, the values should be like Latitude 20.00416666666667 and Longitude 39.99583333333333.So,read the correct Byte values of the DEM file.The code I have used till now is:
Dim fs As FileStream = New FileStream("C:UsersadminDesktopHeader and DEM fileE020N40.DEM", FileMode.Open, FileAccess.Read) Dim rd As New BinaryReader(fs) Dim convertDB As UInt16 For i = 0 To rd.BaseStream.Length
my problem is that is have to create a program in which I enter some text in a text box and then in an other text box it will display the value store in a selected byte. I really don't know where to start. I have a form with three text box and a button. One of the text box to copy o write whatever I want, the other text box to write the number the byte I want to get the value and the last text box to display the value stored in the byte I choose. With the button I will start the function that will get me the value in the byte.
I really am looking to store two nibbles in a byte and that's not what the text is. I have a character set that uses 0-9, . and ; I need only these plus I'll add an end of data value in case I have a byte whose lhs is a real value but whose rhs is null.Ideally, the compressed and uncompressed targets are both byte arrays.