>

AFPexplorer
Document
AFPexplorer.zip (Click here to download)

 

 

This program was written to help me write other programs for working with AFP files. I use this program whenever I am doing low-level AFP development. It lists all structured fields, and all values (to the best of my knowledge).  Also, I've recently added the ability to render objects, and a built-in hex-editor.



History:


10-16-2009:
Added bit-order and row-order to ImageEncodingParameter in IPD breakdown.

10-13-2009:
File comments now appear correctly in the File Properties window.

10-02-2009:
Fixes to the rendering code.

09-15-2009:
Fixed display of NOP in PTX breakdown not converting EBCDIC to ASCII.

09-10-2009:
Added TBM to PTX breakdown.

09-09-2009:
Added DBCSsection to field CFI, and made ULwidth a floating-point value for field FNP.

09-08-2009:
Added support for rendering BGR (GOCA) structures.  NOT COMPLETE!
Added support for BDA and MBC fields.

09-04-2009:
Fixed rendering of image objects.  The Object was being drawn outside of the visible image area.
Added support for rendering BPS structures.  PageSegments have no size specified, so the code calculates the minimum size required to encapsulate all objects (except text).
Page dimensions now evaluates MediumMaps, and prefers MediumMap dimensions over PGD dimensions.

09-02-2009:
Added support for viewing non-banded JPEG images with multiple Image Segments.
Cleaned up some of the IOCA image processing, better support for multiple image segments.

09-01-2009:
Fixed the GAD breakdown. 

08-31-2009:
Added support for rendering 8bit grayscale image data.

08-27-2009:
Fixed MSU field only listing the first RepeatingGroup of SupressionNames and SupressionIDs.
Fixed PGP field only listing the last RepeatingGroup of values.

08-26-2009:
Fixed a very rare error that would occur if the user tried to navigate to the last page, and the BPG record for that page was in a field whose index was a multiple of the offset chaching size.
Removed some background exceptions.
Fixed an error with MSU field not converting SupressionName from ascii/ebcdic.
Added display of SupressionID to MMC field and BSU/ESU data to PTX breakdown.

08-25-2009:
Fixed an error that would prevent BII images from being rendered.
Added basic support for MouseWheel.

08-21-2009:
Fixed an error that would occur when pressing CTRL-END if the file did not need to be scrolled (numFields less than visFields).
Fixed an issue with the scrolling, where pressing DOWN could scroll past the last field.
Disabled word-wrapping on the textbox arrays.  This should have been disabled and noticed durring the .Net conversion.

08-13-2009:
Tweaked the PageUp and PageDown code to scroll faster, and stop scrolling sooner when the button is released.

08-05-2009:
Fixed an issue that would cause the drop-down box on the Search window to add duplicate entries.
Fixed an issue with the PTX breakdown, where TRN data was not being converted from EBCDIC to ASCII.

08-04-2009:
The program can now open read-only files.  However, if the file is read-only, field editing is disabled.
Cleaned up error message code.

07-23-2009:
Disabled the right-click menu when no file is loaded.
Fixed a condition that would try to close a file that was already closed.

07-22-2009:
Re-coded the Control Arrays that make up the main interface.

07-21-2009:
Added object rendering functionality.  Right-click on a BPG, BMO, BIM, or BII field to view it rendered to the screen.

07-20-2009:
Fixed all of the speed issues while viewing data as HEX.  The solution was to use the BitConverter.ToString method instead of doing the conversion myself.
Added the File Properties window.

07-16-2009:
Changed the Field Data window to use a Grid control, instead of dynamically creating hundreds (or thousands) of labels.
Enabled the Copy Selection function on the Field Data window.
Added TRN text to PTX breakdown.  It appears that VB.Net does not have the same limitations on textboxes as VB6.
Added 'Extraction Complete' messagebox to the 'Extract Resources' button.

03-01-2009:
Upgraded source code from Visual Basic 6.0 to VB.Net 2005.
Fixed an error that would cause the wrong PtSize to be displayed on FND fields.

08-18-2007:
Fixed a bug in one of the IOCA functions, when the sequence type was zero, the program would loop infinitely.

05-17-2007:
Added GOCA support, including a GOCA breakdown for GAD fields.  Thanks to Marc Goldstein for providing a sample file.
Modified the Save-As window, to allow saving of files with no pages.

02-13-2007:
Fixed an error that would cause the View Field Data interface to generate an error when viewing PCL files.

01-12-2007:
More work on the View Field Data interface.  Added ToolTips to display byte value / offset, and customizable font.

01-10-2007:
Fixed the label that shows the offset in the View Field Data interface, so it now updates correctly while scrolling.
Working on the ability to select and copy a range of bytes.

01-09-2007:
Increased the speed of the View Field Data interface by sharing the FileNumber that is already open in the main interface.

01-08-2007:
Added the option to view numeric values of bytes in the View Field Data interface (and edit those values).
Increased the row-spacing in the View Field Data window.

01-06-2007:
Increased the maximum number of visible lines in the View Field Data interface from 50 to 100. 

01-05-2007:
Bytes can now be modified through any of the data views (Hex, Binary, Ascii, Ebcdic).
Cleaned up the View Field Data interface a bit.

01-04-2007:
Added the ability to modify bytes via the View Field Data interface.
Data can be modified as HEX, Binary, ASCII, or EBCDIC.
Added a confirmation prompt to the MakeNOP menu item.

11-05-2006:
Started adding support for PCL files to AFPexplorer. 
Unfortunately, chained commands are not currently broken down. 
May need to change program name to PRNexplorer or something more generic.

09-30-2006:
Modified the way files with CrLf are handled.  The 2 bytes for the CrLf are now counted as part of the FieldLength.
Prior to this change, the Cr and the Lf would both display as a 1-byte fields.

09-01-2006:
Added the funcitonality to export a file to text.  Basically a text listing of the data presented by AFPexplorer.
This functionality also supports filtering of fields.

08-17-2006:
Added support for obsolete fields CTC and FGD.

08-16-2006:
Modified the program to accept files with CrLf after each field without raising an error.
Changed the maximum number of visible lines from 50 to 60.  Might make this dynamic, based on screen resolution.

08-14-2006:
Fixed an error where certain windows would be hidden behind the main form if the 'KeepOnTop' option was enabled.

04-10-2006:
Added support for some AFP fields I was going to ignore until I encountered them.
BCA, MCA, MSU, IPG, MGO.

04-04-2006:
Added IOCA breakdown for IPD fields in AFP files.  Very similar to the PTOCA breakdown for PTX fields.
Added support for more IOCA commands.
Changed color-coding of fields a little bit.
Added Hex view to main interface.  Hex view is slightly slower than normal Ascii or Ebcdic view.

04-01-2006:
Added PTOCA breakdown for PTX fields in AFP files.  This required some interface modifications.
Added some search functionality.  Search for text in PTX fields, or search for a field by field-type.
More search functionality still to come.
Field modifier also still to come.

03-10-2006:
Added resource listing/extracting functionality.  Copied directly from Viewer program.

03-04-2006:
Added some color-coding to certain fields (NOP, BDT, and PTX for now).
At some point, color-coding will be configurable.

01-21-2006:
Changed MRU list to support nine entries instead of eight.  I may make it ten, with number ten being zero.



Through Present:
Over time, nearly all structured fields and all values have been incorporated.

Late 2004:
Program is not fast enough.  Uses too much memory.  Complete re-write.
(overhaul took about 4 days)

Early 2004:
Program works well.  3 pre-defined color schemes are available. 

Early 2003:
Started writing a Structured Field viewer.  This will be essential to writing an AFP viewer.



AFPexplorer ScreenShot