|
hi there,
i'm having big trouble in reading a binary file that has some values in little-endian encoding and some other in big-endian encoding in the header.
can someone explain how to read the header retreaving those values?
thanks in advance.
fuel2run
|
|
|
|
|
fuel2run wrote:
a binary file that has some values in little-endian encoding and some other in big-endian encoding
WHAT?? Very strange...
But the fields that are encoded backwards would have to be read into a byte array and you'll have to write the code to reverse the byte order and then do some simple math to get the value back out.
byte0 | byte1 | byte2 | byte3
Gets reversed to:
byte3 | byte2 | byte1 | byte0
Do the math:
Value = (Byte3 << 24) + (Byte2 << 16) + (Byte1 << 8) + Byte0
Of course, this is subject to exactly how the bytes are really stores and what the value is supposed to be. You COULD have something like this if the values were stored WORD reversed instead of BYTE:
byte0 | byte1 | byte2 | byte3
Should be:
byte2 | byte3 | byte 0 | byte 1
It all depends on the system that wrote the file...
RageInTheMachine9532
"...a pungent, gastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
thanks Dave,
i have to read some "int32" (in vb.net) and i know "where they are" , could you explain the simple math you wrote? i'm not familiar with that sintax (Byte3 << 24 ?)
a win system wrote the file,it is an esri shape file.
thank you
fuel2run
|
|
|
|
|
The << and >> operators are bit shift operators available in VB.NET 2003. They don't exist in 2002. All they do is shift a value a specificed number of bits in that direction. So if you, int a UInt32 had the value &HFF (decimal 255), it would look like this:
00000000|00000000|00000000|11111111
Shifting the value 24 bits to the left, it would now look like this:
11111111|00000000|00000000|00000000
And it's value would then be &HFF000000 (decimal 4,278,190,080).
You could accomplish the same shift by multiplying the value by 2^24.
RageInTheMachine9532
"...a pungent, gastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
i'll try as soon as possible, you've been crystal clear
thank you!
fuel2run
|
|
|
|
|
it works fine Dave!
it's the very first time i read binary data.
many thanks!
fuel2run
|
|
|
|
|
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I am using:
Private Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
In a VB.Net project (virtual desktops) to (try) and hide running programs (windows not created by my application). I have allready found the hWnd for the window I want to hide (invisable and not in task bar).
I can use the API above to hide the windows no problem (hWnd, SW_HIDE) but getting them back is... not working. I have tried to restore the window (same hWnd) on the next line of code, with SW_SHOW, SW_SHOWNORMAL, SW_RESTORE, SW_MAXIMIZE, SW_MAX (which I took straight form the VB6 API Text Viewer), all with no sucess. The process is still running (in TaskManager) so I doubt that the window was destroyed.
I tested the program on 2 PCs with different OSs (XP Pro and Longhorn 4074 - i know, i know: unstable alpha. But it should work on the XP system), so I think it is my fault.
If any one knows whats wrong, or has another way to hide and restore windows, I'd appriciate it.
Colonel Sanders
|
|
|
|
|
Could someone please explain the difference between scalewidth, scaleheight, scaleX, scaleY, etc. I am really confused. I am trying to set my controls and pictureboxes to automatically resize with the form, but I am having a lot of trouble. I would really like to see an explanation mathematically so that I understand it better. I see a lot of code that uses these with the screen.TwipsPerPixelX, screen.TwipsPerPixelY, but don't quite understand.
|
|
|
|
|
ScaleX and ScaleY convert the values from one unit of measure (twips, pixels, whatever's....) to another.
ScaleWidth and ScaleHeight get/set the values that represent the width and height of the control/form in the units set by the ScaleMode property. Usually, you leave ScaleMode set to vbTwips.
You can use the TwipsPerPixelX and TwipsPerPixelY to determine what the increment should be for ScaleWidth and ScaleY. Say you want to increase the width of a button control by 2 pixels. You would get the TwipsPerPixelX value and multiply that by 2, then add that value to the value in Button1.ScaleWidth.
RageInTheMachine9532
"...a pungent, gastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I define a dll file inthe vb,net project
I want to set the dll file to server
,and the client forms connect and user the remote dll on the server
please help me ,thank you very much!
|
|
|
|
|
You going to have to be more specific about the .DLL project. What kind of project did you create? What kind of server are you creating?
There is no way to just convert a .DLL into a server. Your project must be written AS a server from the very beginning...
RageInTheMachine9532
"...a pungent, gastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I have take this sample program at microsoft.com
ms knowledgebase 238228 how to create office2000com addin in vb
and trying to create addin for office application. I am using the sample with
IDTExtensibility2. the problem is when using this sample i can't get the event to DocumentBeforeSave,DocumentBeforeClose some how
anyone has sovled this problem?
Shin
|
|
|
|
|
Could anybody help with the following!
I would like to send a string to another external application input field.
|
|
|
|
|
Additional clarification.
External application could be any, example MS Word. The sequence of steps is the following.
1. click somewhere in external application input field
2. go back to your own application
3. send string and it goes to external application to the position where it was clicked.
Thak you for your help
|
|
|
|
|
Take a look at the SendKeys class. This example is straight out of the online help:
AppActivate("Untitled - Notepad")
SendKeys.SendWait("Hello world!")
' Send Ctrl S to open the Save As dialog box.
SendKeys.SendWait("^S")
' Send the name of the new file.
SendKeys.SendWait("c:\HelloWorld.txt")
' Send Alt S to save the file.
SendKeys.SendWait("%S")
Charlie
if(!curlies){ return; }
|
|
|
|
|
It is not working in this case. External application is not activated within your program. There is no: AppActivate. It is external application, or process.
|
|
|
|
|
Are you using VB.NET?
Charlie
if(!curlies){ return; }
|
|
|
|
|
yes, of course. I know I can use sendkeys.send in order to send sequence to the application which I've activated within my program. My, question how to send it to application which was started externally.
|
|
|
|
|
|
You will probably have to import the Microsoft.VisualBasic namespace at the top of your code:
Imports Microsoft.VisualBasic
Also, you will find that this method has its problems. Your user CANNOT click anywhere on the user interface and another application must not open another windows (like in a login script) while the code for AppActiveate and SendKeys is running. Doing so will send the keystrokes to an unintended destination window and your control attempt will fail.
[EDIT]
Oops! Wrong recipient! Sorry!
RageInTheMachine9532
"...a pungent, gastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
To use the AppActivate method, you will probably have to import the Microsoft.VisualBasic namespace at the top of your code:
Imports Microsoft.VisualBasic
Also, you will find that this method of control has its problems. Your user CANNOT click anywhere on the user interface and another application must not open another windows (like in a login script) while the code for AppActiveate and SendKeys is running. Doing so will send the keystrokes to an unintended destination window and your control attempt will fail.
RageInTheMachine9532
"...a pungent, gastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Unless there specific cells you wanted to compare, you would use a loop within a loop to compare a block of cells between two sheets. This example will compare the values between A1:J10:
Dim row, col As Integer
Dim cellID As String
For row = 1 to 10
For col = 1 to 10
cellID = Chr(64+row) & col.ToString("##")
If sourceWorksheetObject.Range(cellID).Value <> _
compareWorksheetObject.Range(cellID).Value Then
' Cells are not equal, do something about it...
Else
' Cells ARE equal
End If
Next
Next
RageInTheMachine9532
"...a pungent, gastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
ListView, Datagrid
Why invent the wheel, when you can invent software.
|
|
|
|
|
There are two ways to do this. If you want to use a DatGrid, you'll have to open the .XLS file using ADO.NET and the Excel data provider. You'll treat this just like a database. The other method involves adding a reference to either the Microsoft Excel Object Library or the Microsoft Office Object Library. You would then place this control on your form and manipulate it just like you would if you were using VBA inside Excel. You could tell your instance of Excel to load the file and display it, then the user would have all the functionality of Excel inside your app.
RageInTheMachine9532
"...a pungent, gastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|