Translhextion's Main Window


The window's title shows the name of the currently loaded file in square brackets, with an asterisk on it's right side if the file has been changed. If a file is loaded, you will find something like this in the window's client area:

000000 23 42 34 53 56 45 76 45 #B4SVEvE
000008 64 56 0a bc 0a 35 c0 08 dV...5..
000010 06 be 09 07 bb 07 00 00 ........
000018 00 00 00 00 00 00 07 __ .......

On the far left are the offsets of the first byte in the line in hexadecimal notation. You can choose the offset length with the Options/Preferences command. Then come the actual byte values, with vertical separating lines after every fourth byte in the line. You can choose the number of bytes to display per line with the Options/Preferences, and also, if it should be automatically adjusted to the window width. To the far right are the character representations of these values, with dotted lines on the left and right of this section. You can choose the character set for these representations as well as the font size with the Options/Preferences command. As you can see, the first byte of the second line of the sample hexdump has the hexadecimal value 64 and the corresponding character is a lower case "d". The position after the last byte of the file is marked with a double underscore "__" in the byte section.

Blinking in the window somewhere is a rectangular caret, if the window is enabled. If it is in the byte section, then it stands on either of the two nibbles (half-bytes). If it is in the character section, then it stands on one character corresponding with one byte. In either case the corresponding other representation is shown inverted in the other section.
On the bottom of the window is the status bar, which displays additional information. In the first section of the status bar you can find the current offset of the byte which the caret is marking in hexadecimal and decimal notation. After that come the bits of the current byte. Also in this section, on the right side, is something like this:

Unsigned: B:35,W:16931,L:1395933731
These are the values of the byte (B:), the word (W:) and the longword (L:) value starting at this offset in decimal notation. These are computed depending on the setting for signed or unsigned values (Choose with command Options/Preferences) and on the binary mode setting, either Little-endian (Intel format) or Big-endian (Motorola format). Choose with command Options/Binary mode.
In the second section of the status bar are indicators for:

- character set: "ANSI" or "OEM".
- entering mode: "OVR" for overwriting or "INS" for inserting on keyboard input. If Translhextion is in read-only mode, then there will be a "READ" here.
- binary mode: "L" for Little-endian or "B" for Big-endian.
In the third section the file size in bytes is displayed.
The window also has a vertical and a horizontal scrollbar, which can be used to scroll the view. They don't change the caret position.

Moving the caret in the file

You can move the caret with the arrow keys. Press TAB to toggle the editing mode between byte and character editing.You can also jump to any position by choosing the Offset/Jump to... command and entering an offset, like "125", which will set the caret position to offset 125 decimal. For relative jumps in the file, for example if you want to go to an offset 150 bytes after the current one, you have to start with "+" as the first character and follow this with either a decimal number or a hex number starting with "x". So to jump 150 bytes forward you have to enter "+150" or "+x96" in hex notation. For backward relative jumps start with "-" (minus) as the first character. To jump directly to the end of the file press Ctrl+End, for the beginning Ctrl+Home.

Translhextion can find text and binary values in a file. Choose Search/Find to do this. In the dialog you can choose if the case of the text parts of the find string are to be ignored and the find direction. To encode binary values, Translhextion uses a special byte-code syntax developed by Raihan Kibria.

Example:
Here is the find string.<bd:0>FloatValue<fl:-14.56>
This will cause Translhextion to search for a string "Here is the find string." followed by a zero-byte, then the text "FloatValue" and a 4-byte float with the value -14.56.

Note that coded binary values will also be transformed by the "match case" option of the Find command, so if you search for a byte with the hex value of 0x41 (this is the upper-case letter "A") with the match-case option disabled, then Translhextion will also find bytes with the hex value 0x61 (the lower-case letter "a"). Therefore you should always search for discrete binary values with case-matching enabled or you might not get correct results.
Please see Using the special syntax for further information.

The Search/Find next and Search/Find previous commands find the next or previous occurrence of the find string last entered in the Find-dialog, with the match-case option enabled or disabled as chosen in it.
By positioning the mouse cursor on a byte or a character and pressing the left mouse button you can also set the caret position.
You can also move in the file by choosing one of the bookmarks in the "Bookmarks" menu section. The caret will be set to that offset immediately.

Editing the file

There are several ways to edit the data in the file. But you will only be able be to change the file in any way if the Read-only mode is disabled. To enable or disable the read-only mode choose the File/Read-only on/off command. If the read-only mode is enabled, there will be "READ" written in the status bar and the menu item will be checked.

Using the keyboard
For overwriting data the overwriting entering mode must be enabled, that means, the status bar must show "OVR" somewhere. Toggle the entering mode with the Insert-key on the keyboard or choosing Insert/Toggle keyboard insert/overwrite mode . You can overwrite the data in the bytes section by moving the cursor to the appropriate position and pressing any of the hexadecimal digits 0-9 and a-f on the keyboard. The nibble the caret is marking currently will be set to that value and the caret will then go on to the next nibble. If the caret is in the bytes section, pressing any alphanumeric key will set the current byte (that which the caret is marking) to that value, and the caret will go on to the next byte.

For inserting data the status bar must show "INS" somewhere. Entering data now will insert a byte at the current position.