Chapter 1. Overview

A simple FileHandler which allows editing of arbitrary binary data.

It can be used to modify the contents of any file on a byte by byte level. The files contents are fully loaded into memory and presented in a hexadecimal and ASCII table, a way very common among HEX editors.

ASCII control characters (those bytes with a value below 0x20) are displayed in a lighter color in the HEX table than other bytes. They display a tooltip text with the meaning of that byte when hovering the mouse cursor above them.

Modification of bytes is possible both in the per byte hexadecimal table as well in the ASCII line to the right of that table.

Modifying a table cell (either HEX or ASCII) will require to press either TAB or ENTER to confirm the change.

Modifying in the ASCII cell will only change those bytes whose ASCII representation has changed, thus preventing accidentially resetting non-ASCII bytes of that line.

Aside from direct editing of individual byte cells, the contents can be modified in several ways through the available command buttons. Many of these are working with a highlighted selection byte range and operate on these. If nothing is highlighted, then the byte at the current cursor position will be affected or, if the cursor is currently in the offset or ASCII column, the entire row.

Several of the commands will prompt for an input and that input text will be interpreted creatively to provide better usability without cluttering the toolbar with too many specialized commands:

When issuing a command which prompts for an input to perform its operation, the suggested default input will be based on the current state:

Thus, if the full content is currently selected, then issuing the Find command will have the full hex content in its input field ... which might be a problem with large data.

The following content related commands are available:

As this FileHandler supports modification and saving of the loaded data, it is an editor by nature.

In order to provide a true editor experience however, it is necessary to load the entire files contents into memory to avoid having to make changes on the underlying file when editing. For large files this might result in memory issues though.