2170 lines
70 KiB
C#

using System;
using System.IO;
using System.Text;
using System.Collections;
using System.Windows.Forms;
using System.Runtime.Serialization.Formatters.Binary; // read in struct
using System.Xml;
using System.Xml.Serialization;
public class fmtDefineAndEnums
{
// values for AccessableTypes
public static ushort ADDING_CAUTION = 1;
public static ushort ADDING_NOTE = 2;
public static ushort ADDING_RNO = 4;
public static ushort ADDING_SUB = 8;
public static ushort ADDING_TABLE = 16;
public static ushort ADDING_NEXT = 32;
public static ushort ADDING_PREV = 64;
/* Fonts: index into fonts[NFONTS] array */
public static uint ELITE = 0;
public static uint PICA = 1;
public static uint LN_PRN = 2;
public static uint CONDENSE = 3;
public static uint SANSERIF = 4;
public static uint PICA12 = 5;
public static uint PROPORTIONAL = 6;
public static uint PROPT12 = 7;
public static uint HVLPT18 = 8;
public static uint HVLPT25 = 9;
public static uint SPECIALCHARS = 10;
public static uint PT14 = 11;
public static uint SANSERIF14 = 12;
public static uint SANSERIF17 = 13;
public static uint HVLPT12 = 14;
public static uint NARRATOR = 15;
public static uint MEDUPUNIVERS = 16;
public static uint LGUPMED16 = 17;
public static uint PROPT10 = 18;
public static uint LG1275HP4SI = 19;
public static uint HVLPT10 = 20;
public static uint HVLPT8 = 21;
public static uint HVLPT14 = 22;
public static uint SANSERIF25 = 23;
public static uint EYECHART = 24;
public static uint TIMES11 = 25;
public static uint SANSCOND = 26;
/* text styles */
public static uint UNDERLINE = 64;
public static uint BOLD = 128;
public static uint LANDSCAPE = 256;
public static uint ITALICS = 512;
public static uint BOXED = 1024;
public static uint BOXELEMENT = 0x00000800;
public static uint TBCENTERED = 4096;
public static uint RTCHECKOFF = 8192;
public static uint LTCHECKOFF = 16384;
public static uint BIGSCRIPT = 32768;
public static uint HLTEXTHL = 65536;
public static uint RTCHECKOFFWITHASTERISK = 131072; /* 0x00020000L */
public static uint DB_UNDERLINE = 262144;
public static uint COLDOTS = 524288; /* 0x00080000L */
public static uint MMBOLD = 1048576;
public static uint RIGHTJUSTIFY = 2097152;
public static uint SUBSCRIPT = 4194304;
public static uint SUPERSCRIPT = 8388608;
public static uint PAGELISTITEM = 16777216; /* 0x01000000L */
public static uint PRINTONTOPOFLINE = 33554432; /* 0x02000000L */
public static uint HORZCENTER = 67108864; /* 0x04000000L */
public static uint CIRCLESTRING2 = 0x08000000;
public static uint ALIGNWITHUP1 = 0x10000000;
public static uint ALIGNWSECNUM = 0x20000000;
public static uint MATCHCOLUMNMODE = 0x40000000;
public static uint KEEPRNOSUBSTYLE = 0x80000000;
/* Replace Words Defines */
public static ushort REPLACESIZE = 60; // Arrays size for ReplaceWords, **ReplaceWith,
// and ReplaceFlags
public static uint REPLEVERYTHING = 0x0000007F; // Turns on the Replace function for
// all classes of structure types
/*Highest 4 bits are OFF by Default*/
/*REPLBKGD also OFF by default*/
/*REPLHLSSETPNT also OFF by default*/
/*REPLDIFFUNIT also OFF by default*/
/*REPLTOC also OFF by default*/
/*REPLPLACKEEP also OFF by default*/
public static uint REPLHIGH = 0x0001; //Do ReplaceWords in HIGH LEVEL STEPS
public static uint REPLRNO = 0x0002; //Do ReplaceWords in RNOS
public static uint REPLCAUTION = 0x0004; //Do ReplaceWords in CAUTIONS
public static uint REPLNOTE = 0x0008; //Do ReplaceWords in NOTES
public static uint REPLTABLE = 0x0010; //Do ReplaceWords in TABLES
public static uint REPLSUBSTEP = 0x0020; //Do ReplaceWords in SUBSTEPS
public static uint REPLATTACH = 0x0040; //Do ReplaceWords in ATTACHMENTS
public static uint REPLBKGD = 0x0080; //Do ReplaceWords in BACKGROUNDS
public static uint REPLDIFFUNIT = 0x0100; //Do ReplaceWords ONLY for different UNIT #
public static uint REPLTOC = 0x0200; //Do in auto table-of-contents
public static uint REPLSTATTREE = 0x0400;
public static uint REPLHLSSETPNT = 0x0800; //Do ReplaceWords in HighLevelStep SETPoiNTs
/*These bits are used for classes which
**are normally OFF, currently these
**are SETPOINTS and TRANSITIONS*/
public static uint REPLTRAN = 0x1000; //Do ReplaceWords in TRANSITIONS
public static uint REPLSETPOINT = 0x2000; //Do ReplaceWords in SETPOINTS
/* Case Sensitivity Flags - default is off (Case Sensitive Replace)*/
public static uint REPLCASEINSENS = 0x0000C000; //Do ReplaceWords for all words that
//match, regardless of case, and
//replace with the ReplaceWith string
//as is
/* Setting either of the following flags individually replaces the ReplaceWord
** occurrance with the original matched text surrounded by any special
** characters in the ReplaceWith string*/
public static uint REPLCASEINSENSFIRST = 0x4000; //Do ReplaceWords for all words that
// exactly match the ReplaceWord, except
// the case of the first character may
// be different
public static uint REPLCASEINSENSALL = 0x8000; //Do ReplaceWords for all words that
//match the ReplaceWord, regardless of
//case
public static uint REPLPARTIALS = 0x10000; // Do replace even on partial matches
public static uint REPLPLACKEEP = 0x20000; // Do replace in PlaceKeepers
public static uint REPLINSECTITLE = 0x40000; // replace words in section titles
/*
** Max number of substep type groups allowed to be made.
** for use with TypeGroups
*/
public static short MAXTYPEGROUPS = 10;
public static short ENDGROUP = 99;
public static short MAXENHANCEDTYPES = 20;
public static short MAXTRANS = 15; /* Max # of format defined transitions */
public static short MAXSECLEVELS = 10;
public static short MAXMATCHPROCNUM = 10;
public static short MAXBOXES = 24;
public static short NUMBOXCHARS = 12;
public static short MAXTABS = 20;
}
[Serializable]
public struct FormatFlags
{
public ushort XtraFlag_0;
public ushort XtraFlag_1;
public ushort XtraFlag_2;
public ushort XtraFlag_3;
public ushort XtraFlag_4;
public ushort XtraFlag_5;
public ushort XtraFlag_6;
public ushort XtraFlag_7;
public ushort XtraFlag_8;
public ushort XtraFlag_9;
public ushort XtraFlag_10;
public ushort XtraFlag_11;
public ushort XtraFlag_12;
public ushort XtraFlag_13;
public ushort XtraFlag_14;
public ushort XtraFlag_15;
public ushort XtraFlag_16;
public ushort XtraFlag_17;
public ushort VEAIRFlag; // VEAIRFlag
public ushort PurchaseOptions; // PurchaseOption
}
[Serializable]
//public struct MaxRNOColumns
public struct ColunmShortValues
{
public short OneColumn;
public short TwoColumn;
public short ThreeColumn;
}
[Serializable]
public struct EditPrintShortValues
{
public short Edit;
public short Print;
}
[Serializable]
public struct AlternateRNOWidth
{
public short FirstColumn;
public short SecondColumn;
}
[Serializable]
public struct EditPrintStr
{
// public string ForEdit;
// public string ForPrint;
public Txt ForEdit;
public Txt ForPrint;
}
[Serializable]
public struct SeqTab
{
// Array of 9 substep levels (0-8)
// starting ASCII location for sequential substep tabs
//(0 = numbers, ` = lower case letters, @ = upper case letters)
// The sequence is recycled beyond the defined ones.
// public byte []SeqStart = new byte[9];
public byte SeqStart;
// LeftJustSeqTab
// - left justify the tab derived from SeqTab
// (pad tab on the right side with blanks)
// public short []LeftJustSeqTab = new short[9];
public short LeftJustSeqTab;
// SeqTab - the ". ", ") ", etc. that follows the sequential
// substep number/letter
// public string []SeqSubStpTabFmt = new string[9];
// public string SeqSubStpTabFmt; // sequential substep tab format
public Txt SeqSubStpTabFmt; // sequential substep tab format
// // PreSeqTab - text to pre-append to the substep's SeqTab
// // ex: "(" or "["
// // [9] levels of seqtab
// // [2] modes: [0] = edit screen, [1] = printed page
// public string [,]PreSeqSubStp = new string[9,2];
// public EditPrintStr []PreSeqSubStepTab = new EditPrintStr[9];
public EditPrintStr PreSeqSubStepTab;
// // PostSeqTab - (ATA format only)
// // - append this text to end of the substep's SeqTab
// // [9] levels of seqtab
// // [2] modes: [0] = edit screen, [1] = printed page
// public string [,]PostSeqSubStp = new string[9,2];
// public EditPrintStr []PostSeqSubStepTab = new EditPrintStr[9];
public EditPrintStr PostSeqSubStepTab;
}
[Serializable]
public struct WidSTable
{
public EditPrintShortValues OneColumn;
public EditPrintShortValues TwoColumns;
public EditPrintShortValues ThreeColumns;
}
[Serializable]
public struct fmtTab
{
public uint TbStyle; // TBStyle (font type) - font
public bool AlignWithParent; // AlignWithParentTab
public EditPrintStr TabFmt; // TBIdent [0]-screen [1]-Print
public EditPrintStr RNOTabFmt; // RNOTBIdent
// public string AltPrintTabFmt; // AltPrintTBIdent
public Txt AltPrintTabFmt; // AltPrintTBIdent
}
//[Serializable]
public struct NCStr
{
// [XmlElement]
public Txt ForEdit;
public Txt ForPrint;
}
//[Serializable]
//public struct ChkOffItem
//{
//[XmlElement]
// public string []Item;
//}
//public struct VerId
//{
// [System.Xml.Serialization.XmlAttribute]
// public string Text;
//}
public struct ChkOffSytle
{
[System.Xml.Serialization.XmlAttribute]
public uint Style;
}
public struct Txt
{
// [System.Xml.Serialization.XmlAttribute]
[XmlAttribute]
public string Text;
}
[Serializable]
public struct fmtChkOff
{
static int MAXCHECKOFFS = 18;
public int maxcheckoffs
{
get { return MAXCHECKOFFS;}
}
static int MAXCHKHEADINGS = 5;
public int MaxCheckoffHeadings
{
get {return MAXCHKHEADINGS;}
}
// RightCheckOffBox
// [0]AER
// [1]RNO
// [2]Commitment for Braidwood
// [3] (no supporting code) tied to value of TwoCheckOffspublic
// public short [] CheckoffBoxPosition;// = new int[4];
public short AERCheckoffBoxPosition;
public short RNOCheckoffBoxPosition;
public short CommitmentMarkPosition;
public short UserSelectedCheckoffPosition;
// RightCheckOffChars
public byte [] ChkOffScreenNotation;// = new byte[MAXCHECKOFFS];
//CheckOffWidAdjust
public byte []WidthAdjustment;// = new byte[MAXCHECKOFFS];
// CheckOffHeadStyle -font
// public uint []ChkOffHeaderStyle;// = new uint[MAXCHKHEADINGS];
public ChkOffSytle []ChkOffHeaderStyle;
// UseCheckoffIn
public int UseCheckOffsInTheseSections;
//CheckOffAdjustment (not sure why we need this)
public byte PosAdjustment;
//RightCheckOffPrompts
// [XmlElement]
// public string [] ChkOffMenuItems;// = new string[MAXCHECKOFFS];
// [XmlArrayAttribute("MenuItems")]
// public ChkOffItem ChkOffMenuItems;
public Txt []ChkOffMenuItems;
//CheckOffHeadings
[XmlArrayAttribute("Headings")]
// public string [] ChkOffHeadings;// = new string[MAXCHKHEADINGS];
// public ChkOffItem []ChkOffHeadings;
public Txt []ChkOffHeadings;
}
[Serializable]
public struct fmtChgBar
{
public short ChgBarType; // ChangeBarMessage
public short FixedChangeColumn;
public byte FixAERChangeColumn;
public uint ChgBarStyle; // ChangeBarStyle (this is set to font)
// public string ChgBar; // SpecialChangeBar or default to vertical line draw char
public Txt ChgBar; // SpecialChangeBar or default to vertical line draw char
}
[Serializable]
public struct fmtBox
{
static int NUMBOXCHARS = 12;
public int NumBoxChars
{
get {return NUMBOXCHARS;}
}
public enum BoxPiece {BXURC, BXHorz, BXULC, BXVert, BXMLS, BXMRS, BXLRC, BXLLC, BXMID, BXLHorz, BXUMID, BXLMID}
public short BoxStart; //BXStart
public short BoxEnd; // BXEnd
public short BoxTextStart; //BXTxtStart
public short BoxTextWidth; //BXTxtWidth
public short BoxHeight; //BXHeight
public short BoxTabPos; //BXTabPos
public uint BoxStyle; //BXStyle - font
public byte BoxTextRowAdj; //BXTxtRowAdj
// public string []BoxChar;// = new string[NUMBOXCHARS]; // BXChar - index with
// // BoxPiece value
// BXChar - index with BoxPiece value
public Txt []BoxChar;// = new string[NUMBOXCHARS];
}
// Current Format design has one of these for each step type
[Serializable]
public struct fmtStep
{
public uint TextStyle; // STStyle (fonts)
public ushort Color; // Att (color on screen)
public short BlankLinesAfter; // STExtralines (# of blank lines after this piece)
public short BxInfoIdx; // STBoxindex;
public short TabIndex; // STTabsindex
public short PrintPosAdjust; // PrintPosAdjust
public ushort AccessableTypes; // AcTable
public short BlankLineAfterGroupOf; // EveryNLines (blank line after group of x items)
public bool UpperCaseTrans; // AlwaysUpperCase (upper case transitions)
public bool PageBreakAtTypeChange; // PageBreakAtTypechange
public bool AlignWithParentTab; //AlignWithParentTab
public short ChkOffGroups; //RtCheckOffGroups
public short WidthOverride; // StepTypeWidthOverride (overide default width)
public byte []VertPos;// = new Byte[15]; // VertPos (used for valves and checklist formats)
public short ColOverride; // StepTypeColOverride (override default col positon)
// public string SeparatorText; // Sep (used for OR step types for example)
public Txt SeparatorText; // Sep (used for OR step types for example)
// public string PrefixText; // StepPrefix
public Txt PrefixText; // StepPrefix
// public string SuffixText; // StepSuppfix
public Txt SuffixText; // StepSuppfix
// UnderlineTheseChar - print will underline these
// characters along with the normal characters
// public string UnderlineThese;
public Txt UnderlineThese;
}
[Serializable]
public struct RplWord
{
// Used to specify which step types are affected
// by ReplaceWords and ReplaceWith.
public uint ReplaceFlag;
// List of words/phrases to replace
// public string ReplaceWord;
public Txt ReplaceWord;
// List of replacement words/phrases
// public string ReplaceWith;
public Txt ReplaceWith;
}
[Serializable]
public struct TrnsDef // used to override default transition definitions
{
public byte TransType; // the true transition type of format defined transitions
// public string TransFmt; // format string for this transition type
// public string TransMenu; // Menu string for this transition type
public Txt TransFmt; // format string for this transition type
public Txt TransMenu; // Menu string for this transition type
}
[Serializable]
public struct SectLevSettings
{
// Position of the sub (meta) section number on printed page
public byte SecNumPositionAdj;
// Sub (meta) Section Title position on printed page
public byte SecTitlePositionAdj;
// Override ColS and assign HLS a column position based on meta
// section level. Overrides automatic indentation supplied by
// the TieTabToLevel logic
public byte ColSByLevel;
// Adjust the placement of meta sections in the table of contents
public byte TofCPositionAdj;
// Adjust the WidS value (print mode) based on the step level
public byte WidSAdjByLevel;
}
[Serializable]
public struct PrcDescript
{
// Mask to determine which procedures print procedure descriptor text
// public string MatchProcNumber;
public Txt MatchProcNumber;
// Procedure descriptor text for procs matching the cooresponding
// MatchProcNumber mask. This is then put into the page list via the
// <PROCDESC> token
// public string ProcDescriptor;
public Txt ProcDescriptor;
// 2nd procedure descriptor text put into the page list via the <PROCDESC2>
// public string ProcDescriptor2;
public Txt ProcDescriptor2;
}
[Serializable]
// public struct CautNoteTypesOverride
public struct MenuItem
{
public short TextTypeValue; // Caution or Note type
// public string TextType; // menu entry corresponding to text type
public Txt TextType; // menu entry corresponding to text type
}
[Serializable]
public struct AutoTableOfContents
{
// Auto Table of Contents formatting
public byte SecNumPos; // position of section number on TOC page
public byte SecTitlePos; // position of section title on TOC page
public byte SecTitleLen; // max length of section title (before it is wrapped)
public byte PageNumPos; // position of page number of the corresponding section
public byte SpaceChar; // charcter used from end of title to page number (ex "...")
public byte LineSpacing; // number of blank lines between TOC entries
public byte Font; // Font to used
}
[Serializable]
public class FmtFileVars : fmtDefineAndEnums
{
public string Title; // format title
public int MaxNumBoxes
{
get {return MAXBOXES;}
}
public int MaxTabs
{
get {return MAXTABS;}
}
static int NUMStepTextTypes = 47;
public int NumStepSubStepTypes
{
get {return NUMStepTextTypes;}
}
// Arrays size for ReplaceWords, **ReplaceWith, and ReplaceFlags
public int MaxReplaceItems
{
get { return REPLACESIZE;}
}
public int MaxSectionLevels
{
get { return MAXSECLEVELS;}
}
public int MaxTypeGroups
{
get {return MAXTYPEGROUPS;}
}
public int MaxEnhancedTypes
{
get {return MAXENHANCEDTYPES;}
}
// Max # of format defined transitions
public int MaxTrans
{
get {return MAXTRANS;}
}
enum StepTextTYPES
{
STANDARD, HIGH, IMMEDIATE, AND, OR, CAUTION, NOTE, TABLE, CONTINUOUS, AERTABLE,
EQUIPMENTLIST, TITLE, PAGENUMBER, EQUIPMENTWBLANK, PROCNUMBER, REVNUMBER,
ACCPAGES, LOSSOFAC, EXPLICITAND, CAUTION1, CAUTION2, NOTE1, NOTE2, PARAGRAPH,
DEFAULT, NOTE3, CAUTION3, NOTE4, CAUTION4, EQUIPMENTOPT, EQUIPMENTOPTWBLANK,
NOTE5, BORDERLESSAERTABLE, BORDERLESSTABLE, IMPLICITOR, FIGURE, AERFIGURE,
BORDERLESSFIGURE, BORDERLESSAERFIGURE, RNOTYPE, HIGH5, TITLEWITHTEXTRIGHT,
TITLEWITHTEXTBELOW, CONTACSEQUENTIAL, CONTACAND, CONTACOR, CONTACPARAGRAPH
} // a.k.a. STRUCTDEFTYPES in 16bit code
// public ushort []XtraFlag = new ushort[18]; // XtraFlag[0-17]
// public ushort VEAIRFlag; // VEAIRFlag
// public ushort PurchaseOptions; // PurchaseOption
public FormatFlags FmtFlags; // XtraFlag[0-17], VEAIRFlag, PurchaseOption
public bool Emode; // default edit mode (0=insert, 1=overstrike)
public short TopRow; // Top Row On Sreen - this is always set to Zero in p_refresh()
public bool DoPrintDriverAdjustments; // DoPrnDrvrAdjust
public uint TopOfPageThingStyle; // TopOfPageThingStyle
public short TopOfPageThingCol; // TopOfPageThingCol
public uint ModifiedTextSytle; // ModifiedText
public uint SeparatorStyle; // SeparatorStyle
/* SeparatorLocation - Location of separator:
** 0 - left, 1 - right,
** 2+ - positions in the middle */
public short SeparatorLocation;
public short LastLineToStartStep; // LastLineToStartStep
public bool LineDrawingOption; // LineDrawingOption - always set to one (true)
public short HLSTextStartPos; // ColS
public short HLSTextStartPosScrnAdj; // ColSScreenAdj
public short RNOTextStartPosScrnAdj; // ScrnSdjRNOText
public short CautNoteTextStart; // ColT
public short DefaultHLSTextPos; // ColAbs - If not tab, set ptr->Column to this value
public short CautNoteTextWidth; // WidT
public short NumColumns; // Pmode - number of columns - ActualPMode
public short DefaultNumRNOColumns; //MaxRNO - this should be defined at a section level
// MaxRNOTable[3]
// Number of RNO columns for sigle, two, and tree column step section formats
// public short []MaxRNOTable = new short[3];
public ColunmShortValues MaxRNOTable;
// ColRTable
// - starting position of RNO column this should be defined at a section level
// public short []StartRNOPosition = new short[3];
public ColunmShortValues StartRNOPosition;
// // WidSTable - width of HLS [0] - edit [1] - print
// public short [,]HLSwidth = new short[3,2];
// Array of 3 - for each column mode
// public WidsSTable []HLSwidth = new EditPrintShortValues[3];
public WidSTable HLSwidth;
// ColRScreen - adjustment to starting of RNO column on screen
public ColunmShortValues StartRNOPosScrnAdj;
//AdjRNOCol - adjust position of RNO column
public short RNOPositionAdj;
// Change Bar Type and Format settings
public fmtChgBar ChangeBarSettings;
// Number representing the font used in the Summary Of Changes report
public uint ChangeSummaryStyle;
// TitleLength - Max length of title before it is split
public short TitleWidthBeforeSplitting;
//CoverTitleLenth - Max length of title before it is split
public short CoverPgTitleWidthBeforeSplit;
public fmtChkOff CheckOffSettings; // check off settings
// EndMessagePos - this should be defined at a section level
// overrides the default (calculated) center position of
// the procedure step section's End Message but only if
// a Non-Proportional Font is being used for the End Message
public short EndMessageCenterPos;
// Array of 9 substep levels (0-8)
// starting ASCII location for sequential substep tabs
//(0 = numbers, ` = lower case letters, @ = upper case letters)
// The sequence is recycled beyond the defined ones.
// public byte []SeqStart = new byte[9];
// Starting ASCII location for High Level Steps
// This will override the use default use of numbers for
// the High Level Step Tab (ex. setting to @ = upper case letters)
public byte HighSeqStart;
// Character used in the ReplaceWith string to start
// an indent for text on following lines (IP2, PACA, PAC, SCE formats)
public byte IndentToken;
// Column for step header use in Vogtle for the immediate action
// step type
public short ImmStepHdrCol;
// Style for the header
public uint ImmStepHdrStyle;
// if NOT zero:
// [0] will be the width of the first RNO column,
// [1] the width of the second.
// - KEW OP format
// public short []RNOWidthAlt = new short[2];
public AlternateRNOWidth RNOWidthAlt;
// High Level Step Width OVerRiDe:
// when not zero, specify the width of the HLSs,
// overriding the value of WidSTable
// - KEW OP format
public short HLSWidthOVRD;
// Set to the column format (1,2,3) for which PageList items
// in the range -99 to -1 will be printed with the section
// - either on the line at which the section begins,
// or if the section is being continued from a previous page,
// at the row given by the absolute value of PGrow.
public short SecColHdrforActPmode;
// Style variables to be applied to section headers and numbering
// that are enabled by the ShowSectionTitles flag
public uint SectionNumberingStyle;
// Style variables to be applied to section headers and numbering
//that are enabled by the ShowSectionTitles flag
public uint SectionHeaderStyle;
// Style variables to be applied to section headers and numbering
// that are enabled by the ShowSectionTitles flag
public short SectionNumPos;
public byte SectionNumJust;
public short SectionHeaderPos;
public byte SectionHeaderJust;
public short SectionTitleLength;
// Indicates which substep types will NOT be influenced by the
// print flag DontPaginateOnFirstSubStep3X.
// Each bit position maps to the substep menu position where
// 0x01 is sequential, 0x02 is the AND, 0x04 is the OR, etc.
public short SubPaginationWght;
// Adjust the column position by this much of the substeps to the
// right of the TITLEWITHTEXTRIGHT substep type
public short TextTitleAdjustment;
// // Automatic Table of Contents format settings
public AutoTableOfContents AutoTOC;
// style used with VertPos - used for valve lineups and checklists formats
public uint VertStyle;
// column position of centered table on printed page
public byte []TableCenterPos = new byte[3];
// LeftJustSeqTab
// - left justify the tab derived from SeqTab
// (pad tab on the right side with blanks)
// public short []LeftJustSeqTab = new short[9];
// Specify the number of HLS's that will appear on the HLS choice menu.
// Ex. if set to 2, only the first two HLS menu choices will appear
public byte NumberOfHighLevelSteps;
// show only this many sub step types in the sub step menu
public short NumberOfSubStepTypes;
// set to the "Old to New Conversion" setting (ex: A1) of the Continuous
// Action Summary section set up in the Doc Style format file
public uint AutoContActSummarySection;
// IdentB - default bullet
// public string DefaultBullet;
public Txt DefaultBullet;
// SeqTab - the ". ", ") ", etc. that follows the sequential
// substep number/letter
// public string []SeqSubStpTabFmt = new string[9];
// procedure descriptor text (use in PageList)
public PrcDescript []ProcDescriptors = new PrcDescript[10];
// For version id text, DRAFT, APPROVED, TEMPORARY, etc.
// Used for pagelist token <VERSIONID>
// public string []VersionIdText = new string[5];
// public VerId []VersionIDText = new VerId[5];
public Txt []VersionIDText = new Txt[5];
// String to apprear before and after the procedure title in a transition.
// ex. quotes around the title
// public string DelimiterForTransitionTitle;
public Txt DelimiterForTransitionTitle;
// In transitions, delimit step number from substep letter, (ex 2.a vs 2a)
// public string StepSubstepDelimeter;
public Txt StepSubstepDelimeter;
// Used in Through Transitions: 3a through 3c.
// others: 3a. Thru 3c, 3a THROUGH 3c
// public string ThroughString;
public Txt ThroughString;
// char in proc number to flag suffix should be used
// - WPB, WPBA formats
// public string ProcedureSuffixFlags;
public Txt ProcedureSuffixFlags;
// text that will appear next to procedure number
// used by <PROCSUF> in Page List
// - WPB, WPBA formats
// public string []ProcedureSuffix = new string[10];
public Txt []ProcedureSuffix = new Txt[10];
// Text that appears at the top of the first page of the procedure steps
// public string TopOfPageThing;
public Txt TopOfPageThing;
// // PreSeqTab - text to pre-append to the substep's SeqTab
// // ex: "(" or "["
// // [9] levels of seqtab
// // [2] modes: [0] = edit screen, [1] = printed page
// public string [,]PreSeqSubStp = new string[9,2];
// public EditPrintStr []PreSeqSubStepTab = new EditPrintStr[9];
//
// // PostSeqTab - (ATA format only)
// // - append this text to end of the substep's SeqTab
// // [9] levels of seqtab
// // [2] modes: [0] = edit screen, [1] = printed page
// public string [,]PostSeqSubStp = new string[9,2];
// public EditPrintStr []PostSeqSubStepTab = new EditPrintStr[9];
// Printed below the last RNO in each step
// ex: "---------------------------"
// public string RNOSepString;
public Txt RNOSepString;
// Terminate underline if matches one of defined strings
// public string []UnderlineTerminate = new string[10];
public Txt []UnderlineTerminate = new Txt[10];
// printed before and after a group of Immediate actionsteps
// public string []ImmStepHdr = new string[2];
public Txt []ImmStepHdr = new Txt[2];
// override menu of HLS types (descriptions only)
// public string []AlternateStepTypes = new string[5];
public Txt []AlternateStepTypes = new Txt[5];
// override menu of substep types (descriptions)
// public string []AlternateSubTypes = new string[16];
public Txt []AlternateSubTypes = new Txt[16];
// // Holds the string "OBSERVE NOTE|CAUTION PRIOR TO STEP X"
// public string [,]ObserveNCString = new string[4,2];
// public EditPrintStr []ObserveNCString = new EditPrintStr[4];
public NCStr []ObserveNCString = new NCStr[4];
// public string PSInfFile; // Proc Specific Information file
public Txt PSInfFile; // Proc Specific Information file
// String to appear on the line following the high Level step text
// public string HLStpSeparatorString;
public Txt HLStpSeparatorString;
// String to appear on the line following the high level RNO step text
// public string HLRNOStpSeparatorString;
public Txt HLRNOStpSeparatorString;
// Used to tell the pagination logic how far up the lines array to process
// while looking for a place to break. The default will divide the max lines
// out by "2" to get the lower limit value.
// public string LowerLimitDivisor;
public Txt LowerLimitDivisor;
// used with Enhance Documents, this will be used for the step number when
// the user manually creates a new high level Enhanced Document step.
// public string NonLinkedStepNumber;
public Txt NonLinkedStepNumber;
// used with Enhanced Documents, this will be used for the caution or note
// tab when the user manually creates a new Enhanced Caution or Note
// public string NonLinkedCautNoteNumber;
public Txt NonLinkedCautNoteNumber;
// Name of directory for BG documents that print in duplex
// - Point Beach
// public string DuplexBGDirectory;
public Txt DuplexBGDirectory;
// Name of directory for Dev Documents that print in duplex
// - Point Beach
// public string DuplexDDDirectory;
public Txt DuplexDDDirectory;
// used with Enhanced Deviations, this will be used
// when the user does not link to an ERG step.
// public string NonLinkedRNONumber;
public Txt NonLinkedRNONumber;
// // Format variables based on STRUCTDEFTYPES (step types)
public fmtStep []StepDefinitions = new fmtStep[NUMStepTextTypes];
//
// // Define Note/Caution boxes
public fmtBox []BoxInfo = new fmtBox[MAXBOXES];
//
// // Define Step/substep tabs
public fmtTab []TabInfo = new fmtTab[MAXTABS];
// // Define override of default Note/Caution type menu
// public CautNoteTypesOverride []CautNoteMenuOverride = new CautNoteTypesOverride[10];
public MenuItem []CautNoteMenuOverride = new MenuItem[10];
// SeqTab definitions (substep tabs)
public SeqTab []SeqTabInfo = new SeqTab[9];
// // Define Replace Words list
public RplWord []ReplaceWordList = new RplWord[REPLACESIZE];
//
// // Override of default transition definitions
public TrnsDef []TransDefs = new TrnsDef[MAXTRANS];
//
// // Section related format settings
public SectLevSettings []SectionLevelSettings = new SectLevSettings[MAXSECLEVELS];
}
namespace procedureformat
{
public class fmtFormat
{
/// <summary>
/// The FMT file variable settings
/// </summary>
private BinaryReader brFmt;
private string fmtName;
private byte []AllStrings;
public fmtFormat(string nm)
{
fmtName = nm;
LoadFMTFile(nm);
}
private string GetStringFromAllStrings(int idx)
{
StringBuilder sb = new StringBuilder();
while (AllStrings[idx] != 0)
{
sb.Append(Convert.ToChar(AllStrings[idx]));
idx++;
}
// return sb.ToString();
return GetXMLElementText(sb.ToString());
}
private string GetXMLElementText(string instr)
{
string rtnstr;
XmlTextWriter xmlWriter;
StringWriter strWriter = new StringWriter();
xmlWriter = new XmlTextWriter(strWriter);
xmlWriter.WriteString(instr);
xmlWriter.Flush();
xmlWriter.Close();
rtnstr = strWriter.ToString();
// Replace the single quote because ODBC fails if it's in a string.
// The single quote represents the beg/end of a string when the string
// is sent to ODBC.
// *** COMMENT OUT FOR NOW - NOT SURE IF WE NEED TO DO THIS
//rtnstr = rtnstr.Replace("\'","&apos;");
return rtnstr;
}
private string GetAsciiStringUntilNull(BinaryReader br)
{
StringBuilder inpstr = new StringBuilder();
byte input = 0;
int cnt = 0;
bool stillread = true;
do
{
try
{
input = br.ReadByte();
if (input==0) stillread=false;
inpstr.Append(Convert.ToChar(input));
}
catch (System.IO.EndOfStreamException)
{
stillread=false;
}
cnt++;
}while (stillread);
return (inpstr.ToString());
}
private string GetAsciiString(BinaryReader br, int len)
{
StringBuilder inpstr = new StringBuilder();
byte input = 0;
int cnt = 0;
do
{
try
{
input = br.ReadByte();
inpstr.Append(Convert.ToChar(input));
}
catch (System.IO.EndOfStreamException)
{
input = 0;
while (cnt < len)
{
inpstr.Append(Convert.ToChar(input));
cnt++;
}
}
cnt++;
}while (cnt < len);
return (inpstr.ToString());
}
public void LoadFMTFile(string fname)
{
FmtFileVars FmtVars = new FmtFileVars();
string str = null;
// read in title.
brFmt = new BinaryReader(File.Open(fname,System.IO.FileMode.Open,System.IO.FileAccess.ReadWrite,FileShare.ReadWrite));
short len = brFmt.ReadInt16();
string tstr = GetAsciiString(brFmt,len);
char []nulls = {Convert.ToChar(0)};
FmtVars.Title = tstr.TrimEnd(nulls);
// read in struct name/def name/page file name
// - ignore these.
for (int i=0;i<3;i++)
{
len = brFmt.ReadInt16();
str = GetAsciiString(brFmt,len);
}
// Get the number of Int's, Long's, Char's (bytes)
// - This is the number of bytes to the character strings part
// of the format file.
short numIntsLongsBytes = brFmt.ReadInt16();
// Read in all the Int, Long, and Char variable values
// for the FMT files. Get the order of the format variables
// from the FORMAT.STR file in the 16-bit code (\PROMSNT\FORMAT)
// and maps the old 16-bit variables with the 32-bit structures and classes
// short BytesReadIn = 0;
// the first format value is a place holder, read and ignore it.
byte skip_byte;
ushort skip_short;
uint skip_int;
// FirstChar
skip_byte = brFmt.ReadByte();
// XtraFlag[18]
// for (int i=0; i < 18; i++)
// FmtVars.XtraFlag[i] = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_0 = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_1 = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_2 = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_3 = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_4 = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_5 = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_6 = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_7 = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_8 = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_9 = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_10 = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_11 = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_12 = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_13 = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_14 = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_15 = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_16 = brFmt.ReadUInt16();
FmtVars.FmtFlags.XtraFlag_17 = brFmt.ReadUInt16();
// VEAIRFlag
// FmtVars.VEAIRFlag = brFmt.ReadUInt16();
FmtVars.FmtFlags.VEAIRFlag = brFmt.ReadUInt16();
// PurchaseOption
// FmtVars.PurchaseOptions = brFmt.ReadUInt16();
FmtVars.FmtFlags.PurchaseOptions = brFmt.ReadUInt16();
// EMode
skip_short = brFmt.ReadUInt16();
FmtVars.Emode = (skip_short == 1);
// TopRow
FmtVars.TopRow = brFmt.ReadInt16();
// Appendlines (ANO, V.C. Summer)
skip_short = brFmt.ReadUInt16();
// DoPrnDrvrAdjusts
skip_short = brFmt.ReadUInt16();
FmtVars.DoPrintDriverAdjustments = (skip_short == 1);
// STStyle[STRUCTDEFTYPES]
for (int i=0; i < FmtVars.NumStepSubStepTypes; i++)
FmtVars.StepDefinitions[i].TextStyle = brFmt.ReadUInt32();
// Att[STRUCTDEFTYPES] (atribute)
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
FmtVars.StepDefinitions[i].Color = brFmt.ReadUInt16();
// STExtralines[STRUCTDEFTYPES]
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
FmtVars.StepDefinitions[i].BlankLinesAfter = brFmt.ReadInt16();
// STBoxindex[STRUCTDEFTYPES]
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
FmtVars.StepDefinitions[i].BxInfoIdx = brFmt.ReadInt16();
//STTabsindex[STRUCTDEFTYPES]
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
FmtVars.StepDefinitions[i].TabIndex = brFmt.ReadInt16();
// PrintPosAdjust[STRUCTDEFTYPES]
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
FmtVars.StepDefinitions[i].PrintPosAdjust = brFmt.ReadInt16();
// BXStart[MAXBOXES]
for (int i=0;i<FmtVars.MaxNumBoxes;i++)
FmtVars.BoxInfo[i].BoxStart = brFmt.ReadInt16();
// BXEnd[MAXBOXES]
for (int i=0;i<FmtVars.MaxNumBoxes;i++)
FmtVars.BoxInfo[i].BoxEnd = brFmt.ReadInt16();
// BXTxtStart[MAXBOXES]
for (int i=0;i<FmtVars.MaxNumBoxes;i++)
FmtVars.BoxInfo[i].BoxTextStart = brFmt.ReadInt16();
// BXTxtWidth[MAXBOXES]
for (int i=0;i<FmtVars.MaxNumBoxes;i++)
FmtVars.BoxInfo[i].BoxTextWidth = brFmt.ReadInt16();
// BXHeight[MAXBOXES]
for (int i=0;i<FmtVars.MaxNumBoxes;i++)
FmtVars.BoxInfo[i].BoxHeight = brFmt.ReadInt16();
// BXTabPos[MAXBOXES]
for (int i=0;i<FmtVars.MaxNumBoxes;i++)
FmtVars.BoxInfo[i].BoxTabPos = brFmt.ReadInt16();
// TransitionCautionOffset - V.C. Summer
skip_short = brFmt.ReadUInt16();
// BXStyle[MAXBOXES]
for (int i=0;i<FmtVars.MaxNumBoxes;i++)
FmtVars.BoxInfo[i].BoxStyle = brFmt.ReadUInt32();
// TBStyle[MAXTABS]
for (int i=0;i<FmtVars.MaxTabs;i++)
FmtVars.TabInfo[i].TbStyle = brFmt.ReadUInt32();
// AcTable[STRUCTDEFTYPES]
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
FmtVars.StepDefinitions[i].AccessableTypes = brFmt.ReadUInt16();
// EveryNLines[STRUCTDEFTYPES]
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
{
FmtVars.StepDefinitions[i].BlankLineAfterGroupOf = brFmt.ReadInt16();
}
// AlwaysUpperCase[STRUCTDEFTYPES]
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
{
skip_short = brFmt.ReadUInt16();
FmtVars.StepDefinitions[i].UpperCaseTrans = (skip_short == 1);
}
// TopOfPageThingStyle
FmtVars.TopOfPageThingStyle = brFmt.ReadUInt32();
// TopOfPageThingRow
skip_short = brFmt.ReadUInt16();
// TopOfPageThingCol
FmtVars.TopOfPageThingCol = brFmt.ReadInt16();
//ModifiedText
FmtVars.ModifiedTextSytle = brFmt.ReadUInt32();
// SeparatorStyle
FmtVars.SeparatorStyle = brFmt.ReadUInt32();
// SeparatorLocation
FmtVars.SeparatorLocation = brFmt.ReadInt16();
// PageBreakAtTypeChange[STRUCTDEFTYPES]
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
{
skip_short = brFmt.ReadUInt16();
FmtVars.StepDefinitions[i].PageBreakAtTypeChange = (skip_short == 1);
}
// LastLineToStartStep
FmtVars.LastLineToStartStep = brFmt.ReadInt16();
// TextTypeValue[10]
for (int i=0;i<10;i++)
{
FmtVars.CautNoteMenuOverride[i].TextTypeValue = brFmt.ReadInt16();
}
// DontPrintInSection[1]
for (int i=0;i<10;i++)
skip_int = brFmt.ReadUInt32();
// LeftMarginReset
skip_short = brFmt.ReadUInt16();
// OmitErgEopUsage
skip_short = brFmt.ReadUInt16();
// LineDrawingOption
skip_short = brFmt.ReadUInt16();
FmtVars.LineDrawingOption = true; // alway set to true
// ColS
FmtVars.HLSTextStartPos = brFmt.ReadInt16();
// ColSScreenAdj
FmtVars.HLSTextStartPosScrnAdj = brFmt.ReadInt16();
//ScrnAdjRNOText
FmtVars.RNOTextStartPosScrnAdj = brFmt.ReadInt16();
// ColT
FmtVars.CautNoteTextStart = brFmt.ReadInt16();
// ColTincr
skip_short = brFmt.ReadUInt16();
// ColTab
skip_short =brFmt.ReadUInt16();
// ColAbs
FmtVars.DefaultHLSTextPos = brFmt.ReadInt16();
// WidT
FmtVars.CautNoteTextWidth = brFmt.ReadInt16();
// WidTab
skip_short = brFmt.ReadUInt16();
// PMode
FmtVars.NumColumns = brFmt.ReadInt16();
//MaxRNO
FmtVars.DefaultNumRNOColumns = brFmt.ReadInt16();
// MaxRNOTable[3]
// for (int i=0;i<3;i++)
// FmtVars.MaxRNOTable[i] = brFmt.ReadInt16();
FmtVars.MaxRNOTable.OneColumn = brFmt.ReadInt16();
FmtVars.MaxRNOTable.TwoColumn = brFmt.ReadInt16();
FmtVars.MaxRNOTable.ThreeColumn = brFmt.ReadInt16();
// ColrTable[3]
// for (int i=0;i<3;i++)
// FmtVars.StartRNOPosition[i] = brFmt.ReadInt16();
FmtVars.StartRNOPosition.OneColumn = brFmt.ReadInt16();
FmtVars.StartRNOPosition.TwoColumn = brFmt.ReadInt16();
FmtVars.StartRNOPosition.ThreeColumn = brFmt.ReadInt16();
// // WidSTable[3][2]
FmtVars.HLSwidth.OneColumn.Edit = brFmt.ReadInt16();
FmtVars.HLSwidth.OneColumn.Print = brFmt.ReadInt16();
FmtVars.HLSwidth.TwoColumns.Edit = brFmt.ReadInt16();
FmtVars.HLSwidth.TwoColumns.Print = brFmt.ReadInt16();
FmtVars.HLSwidth.ThreeColumns.Edit = brFmt.ReadInt16();
FmtVars.HLSwidth.ThreeColumns.Print = brFmt.ReadInt16();
// for (int i=0;i<3;i++)
// {
// FmtVars.HLSwidth[i].EditWidth = brFmt.ReadInt16();
// FmtVars.HLSwidth[i].PrintWidth = brFmt.ReadInt16();
// }
// for (int j=0;j<2;j++)
// FmtVars.HLSwidth[i,j] = brFmt.ReadInt16();
// ColRScreen[3]
// for (int i=0;i<3;i++)
// FmtVars.StartRNOPosScrnAdj = brFmt.ReadInt16();
FmtVars.StartRNOPosScrnAdj.OneColumn = brFmt.ReadInt16();
FmtVars.StartRNOPosScrnAdj.TwoColumn = brFmt.ReadInt16();
FmtVars.StartRNOPosScrnAdj.ThreeColumn = brFmt.ReadInt16();
//AdjRNOCol
FmtVars.RNOPositionAdj = brFmt.ReadInt16();
// ChangeBarMessage
FmtVars.ChangeBarSettings.ChgBarType = brFmt.ReadInt16();
// FixedChangeColumn
FmtVars.ChangeBarSettings.FixedChangeColumn = brFmt.ReadInt16();
// FixedAERChangeColumn
FmtVars.ChangeBarSettings.FixAERChangeColumn = brFmt.ReadByte();
// BD_PageNumOnCover[3]
for (int i=0; i<3; i++)
skip_short = brFmt.ReadUInt16();
// VeSearchLeftMargin
skip_short = brFmt.ReadUInt16();
// VeStdPrtLeftMarE
skip_short = brFmt.ReadUInt16();
//VeStdPrtLeftMarP
skip_short = brFmt.ReadUInt16();
//ImperfectStructureSepStyle
skip_int = brFmt.ReadUInt32();
//FormsLPI
skip_short = brFmt.ReadUInt16();
//FormsStyle
skip_int = brFmt.ReadUInt32();
//FormsBoxStyle
skip_int = brFmt.ReadUInt32();
//FormsMargin
skip_short = brFmt.ReadUInt16();
//ChangeSummaryLPI
skip_short = brFmt.ReadUInt16();
// ChangeSummaryStyle
FmtVars.ChangeSummaryStyle = brFmt.ReadUInt32();
// ChangeBarStyle
FmtVars.ChangeBarSettings.ChgBarStyle = brFmt.ReadUInt32();
// XPosition[3][10]
for (int i=0;i<3;i++)
for(int j=0;j<10;j++)
skip_short = brFmt.ReadUInt16();
// TitleLength
FmtVars.TitleWidthBeforeSplitting = brFmt.ReadInt16();
// CoverTitleLength
FmtVars.CoverPgTitleWidthBeforeSplit = brFmt.ReadInt16();
// RightCheckOffBox[4]
FmtVars.CheckOffSettings.AERCheckoffBoxPosition = brFmt.ReadInt16();
FmtVars.CheckOffSettings.RNOCheckoffBoxPosition = brFmt.ReadInt16();
FmtVars.CheckOffSettings.CommitmentMarkPosition = brFmt.ReadInt16();
FmtVars.CheckOffSettings.UserSelectedCheckoffPosition = brFmt.ReadInt16();
// FmtVars.CheckOffSettings.CheckoffBoxPosition = new short[4];
// for (int i=0; i < 4; i++)
// FmtVars.CheckOffSettings.CheckoffBoxPosition[i] = brFmt.ReadInt16();
//TwoCheckOffs
skip_short = brFmt.ReadUInt16();
// RightCheckOffChars[MAXCHECKOFFS]
FmtVars.CheckOffSettings.ChkOffScreenNotation = new byte[FmtVars.CheckOffSettings.maxcheckoffs];
for (int i=0;i<FmtVars.CheckOffSettings.maxcheckoffs;i++)
FmtVars.CheckOffSettings.ChkOffScreenNotation[i] = brFmt.ReadByte();
// CheckoffXtraLines[MAXCHECKOFFS]
for (int i=0;i<FmtVars.CheckOffSettings.maxcheckoffs;i++)
skip_byte = brFmt.ReadByte();
// CheckOffWidAdjust[MAXCHECKOFFS]
FmtVars.CheckOffSettings.WidthAdjustment = new byte[FmtVars.CheckOffSettings.maxcheckoffs];
for (int i=0;i<FmtVars.CheckOffSettings.maxcheckoffs;i++)
FmtVars.CheckOffSettings.WidthAdjustment[i] = brFmt.ReadByte();
// CheckoffFeatures[MAXCHECKOFFS]
for (int i=0;i<FmtVars.CheckOffSettings.maxcheckoffs;i++)
skip_byte = brFmt.ReadByte();
// CheckOffHeadStyle[MAXCHKHEADINGS]
// FmtVars.CheckOffSettings.ChkOffHeaderStyle_0 = brFmt.ReadUInt32();
// FmtVars.CheckOffSettings.ChkOffHeaderStyle_1 = brFmt.ReadUInt32();
// FmtVars.CheckOffSettings.ChkOffHeaderStyle_2 = brFmt.ReadUInt32();
// FmtVars.CheckOffSettings.ChkOffHeaderStyle_3 = brFmt.ReadUInt32();
// FmtVars.CheckOffSettings.ChkOffHeaderStyle_4 = brFmt.ReadUInt32();
FmtVars.CheckOffSettings.ChkOffHeaderStyle = new ChkOffSytle[FmtVars.CheckOffSettings.MaxCheckoffHeadings];
// FmtVars.CheckOffSettings.ChkOffHeaderStyle = new uint[FmtVars.CheckOffSettings.MaxCheckoffHeadings];
for (int i=0;i<FmtVars.CheckOffSettings.MaxCheckoffHeadings;i++)
// FmtVars.CheckOffSettings.ChkOffHeaderStyle[i] = brFmt.ReadUInt32();
FmtVars.CheckOffSettings.ChkOffHeaderStyle[i].Style=brFmt.ReadUInt32();
// UseCheckOffIn
FmtVars.CheckOffSettings.UseCheckOffsInTheseSections = brFmt.ReadInt32();
//SmartSubSection
skip_int = brFmt.ReadUInt32();
// EndMessagePos
FmtVars.EndMessageCenterPos = brFmt.ReadInt16();
// CenterTableAdjustment
skip_short = brFmt.ReadUInt16();
// NumberOfLinesForNoteOrCaution
skip_short = brFmt.ReadUInt16();
//SeqStart[9]
for (int i=0;i<9;i++)
// FmtVars.SeqStart[i] = brFmt.ReadByte();
FmtVars.SeqTabInfo[i].SeqStart = brFmt.ReadByte();
// HighSeqStart
FmtVars.HighSeqStart = brFmt.ReadByte();
// IndentToken
FmtVars.IndentToken = brFmt.ReadByte();
// ImmStepHdrCol
FmtVars.ImmStepHdrCol = brFmt.ReadInt16();
// ImmStepHdrStyle
FmtVars.ImmStepHdrStyle =brFmt.ReadUInt32();
// ReplaceFlag[REPLACESIZE]
for (int i=0; i < FmtVars.MaxReplaceItems; i++)
FmtVars.ReplaceWordList[i].ReplaceFlag = brFmt.ReadUInt32();
// RNOWidthAlt[2]
// for (int i=0; i < 2; i++)
// FmtVars.RNOWidthAlt[i] = brFmt.ReadInt16();
FmtVars.RNOWidthAlt.FirstColumn = brFmt.ReadInt16();
FmtVars.RNOWidthAlt.SecondColumn = brFmt.ReadInt16();
// HLSWidthOVRD
FmtVars.HLSWidthOVRD = brFmt.ReadInt16();
// SecColHdrforActPMode
FmtVars.SecColHdrforActPmode = brFmt.ReadInt16();
// AlignWithParentTab[STRUCTDEFTYPES]
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
{
skip_byte = brFmt.ReadByte();
FmtVars.StepDefinitions[i].AlignWithParentTab = (skip_byte.Equals(1));
}
//SectionNumberingStyle
FmtVars.SectionNumberingStyle = brFmt.ReadUInt32();
// SectionHeaderStyle
FmtVars.SectionHeaderStyle = brFmt.ReadUInt32();
// SectionNumPos
FmtVars.SectionNumPos = brFmt.ReadInt16();
// SectionNumJust
FmtVars.SectionNumJust = brFmt.ReadByte();
//SectionHeaderPos
FmtVars.SectionHeaderPos = brFmt.ReadInt16();
//SectionHeaderjust
FmtVars.SectionHeaderJust = brFmt.ReadByte();
//SectionLevelDelta[MAXSECLEVELS]
for (int i=0;i<FmtVars.MaxSectionLevels;i++)
skip_byte = brFmt.ReadByte();
// SectionTitleLength
FmtVars.SectionTitleLength = brFmt.ReadInt16();
// OffsetPageCount
skip_short = brFmt.ReadUInt16();
// RtCheckOffGroups[STRUCTDEFTYPES]
for(int i=0;i<FmtVars.NumStepSubStepTypes;i++)
FmtVars.StepDefinitions[i].ChkOffGroups = brFmt.ReadInt16();
// TypeGroups[MAXTYPEGROUPS][MAXTYPEGROUPS]
for(int i=0;i<FmtVars.MaxTypeGroups;i++)
{
for (int j=0;j<FmtVars.MaxTypeGroups;j++)
skip_short = brFmt.ReadUInt16();
}
// EnhancedSubType[MAXENHANCEDTYPE]
for (int i=0;i<FmtVars.MaxEnhancedTypes;i++)
skip_short = brFmt.ReadUInt16();
// SubPaginationWght
FmtVars.SubPaginationWght = brFmt.ReadInt16();
// TextTitleAdjustment
FmtVars.TextTitleAdjustment = brFmt.ReadInt16();
// STAfterlines[STRUCTDEFTYPES]
for(int i=0;i<FmtVars.NumStepSubStepTypes;i++)
skip_short = brFmt.ReadUInt16();
// TransType[MAXTRANS]
for(int i=0;i<FmtVars.MaxTrans;i++)
FmtVars.TransDefs[i].TransType = brFmt.ReadByte();
// TransMode[MAXTRANS]
for(int i=0;i<FmtVars.MaxTrans;i++)
skip_byte = brFmt.ReadByte();
// OutsideTransType[MAXTRANS]
for(int i=0;i<FmtVars.MaxTrans;i++)
skip_byte = brFmt.ReadByte();
// StepTypeWidthOverride[STRUCTDEFTYPES]
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
FmtVars.StepDefinitions[i].WidthOverride = brFmt.ReadInt16();
// TofCSecNumPos
FmtVars.AutoTOC.SecNumPos = brFmt.ReadByte();
// TofCSecTitlePos
FmtVars.AutoTOC.SecTitlePos = brFmt.ReadByte();
// TofCSecTitlePos2
skip_byte = brFmt.ReadByte();
// TofCSecTitleLen
FmtVars.AutoTOC.SecTitleLen = brFmt.ReadByte();
// TofCPageNumPos
FmtVars.AutoTOC.PageNumPos = brFmt.ReadByte();
// TofCSpaceChar
FmtVars.AutoTOC.SpaceChar = brFmt.ReadByte();
// TofCLineSpacing
FmtVars.AutoTOC.LineSpacing = brFmt.ReadByte();
// TofCFont
FmtVars.AutoTOC.Font = brFmt.ReadByte();
// SkipStepType[STRUCTDEFTYPE]
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
skip_byte = brFmt.ReadByte();
// CheckOffAdjustment
FmtVars.CheckOffSettings.PosAdjustment = brFmt.ReadByte();
// ColsAdjustInS2
skip_short = brFmt.ReadUInt16();
// SeriesTitleLength
skip_byte =brFmt.ReadByte();
// VertPos[STRUCTDEFTYPES][15]
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
{
FmtVars.StepDefinitions[i].VertPos = new byte[15];
for(int j=0;j<15;j++)
FmtVars.StepDefinitions[i].VertPos[j] = brFmt.ReadByte();
}
// VertStyle
FmtVars.VertStyle = brFmt.ReadUInt32();
// TableCenterPos[3]
for(int i=0;i<3;i++)
FmtVars.TableCenterPos[i] = brFmt.ReadByte();
// LeftJustSeqTab[9]
for(int i=0;i<9;i++)
// FmtVars.LeftJustSeqTab[i] = brFmt.ReadInt16();
FmtVars.SeqTabInfo[i].LeftJustSeqTab = brFmt.ReadInt16();
// SecNumPositionAdj[MAXSECLEVELS]
for(int i=0; i < FmtVars.MaxSectionLevels; i++)
FmtVars.SectionLevelSettings[i].SecNumPositionAdj = brFmt.ReadByte();
// SecTitlePositionAdj[MAXSECLEVELS]
for(int i=0;i<FmtVars.MaxSectionLevels;i++)
FmtVars.SectionLevelSettings[i].SecTitlePositionAdj = brFmt.ReadByte();
// ColSByLevel[MAXSECLEVELS]
for(int i=0;i<FmtVars.MaxSectionLevels;i++)
FmtVars.SectionLevelSettings[i].ColSByLevel = brFmt.ReadByte();
// TofCPositionAdj[MAXSECLEVELS]
for(int i=0;i<FmtVars.MaxSectionLevels;i++)
FmtVars.SectionLevelSettings[i].TofCPositionAdj = brFmt.ReadByte();
// WidSAdjByLevel[MAXSECLEVELS]
for(int i=0;i<FmtVars.MaxSectionLevels;i++)
FmtVars.SectionLevelSettings[i].WidSAdjByLevel = brFmt.ReadByte();
// NumberOfHighLevelSteps
FmtVars.NumberOfHighLevelSteps = brFmt.ReadByte();
// BXTxtRowAdj[MAXBOXES]
for(int i=0;i<FmtVars.MaxNumBoxes;i++)
FmtVars.BoxInfo[i].BoxTextRowAdj = brFmt.ReadByte();
// StepTypeColOverride[STRUCTDEFTYPES]
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
FmtVars.StepDefinitions[i].ColOverride = brFmt.ReadInt16();
// NumberOfSubStepTypes
FmtVars.NumberOfSubStepTypes = brFmt.ReadInt16();
// AutoContActSumSection
FmtVars.AutoContActSummarySection = brFmt.ReadUInt32();
// LastChar
skip_byte = brFmt.ReadByte();
// FirstString
// skip_short = brFmt.ReadUInt16();
/***
** The next part of the compiled format file contains all of the strings
** used in this format. Note that duplicat strings are not repeated.
** Instead, duplicat strings reference the same occurence of that string.
***/
// Read in the number of strings (we can ignor this)
short NumStrings = brFmt.ReadInt16();
// Read in the number of bytes the block of the strings take up in the file
short NumBytes = brFmt.ReadInt16();
// Put all of the strings in one big byte array
AllStrings = new byte[NumBytes];
AllStrings = brFmt.ReadBytes(NumBytes);
/***
** The last part of the compiled format file contains references into
** the block of strings - for each string (char *) format variable.
***/
// Read the offset into the byte array and assign the string at that
// position to the corresponding format variable
short offset;
// FirstString
skip_short = brFmt.ReadUInt16();
// BXChar[MAXBOXES][NUMBOXCHARS]
for (int i=0;i<FmtVars.MaxNumBoxes;i++)
{
// FmtVars.BoxInfo[i].BoxChar = new string[FmtVars.BoxInfo[i].NumBoxChars];
FmtVars.BoxInfo[i].BoxChar = new Txt[FmtVars.BoxInfo[i].NumBoxChars];
for(int j=0;j<FmtVars.BoxInfo[i].NumBoxChars;j++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.BoxInfo[i].BoxChar[j] = GetStringFromAllStrings(offset-1);
// FmtVars.BoxInfo[i].BoxChar[j].Item = GetStringFromAllStrings(offset-1);
FmtVars.BoxInfo[i].BoxChar[j].Text = GetStringFromAllStrings(offset-1);
}
}
// TBIdent[MAXTABS][2]
for (int i=0; i < FmtVars.MaxTabs; i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.TabInfo[i].TabFmt.ForEdit = GetStringFromAllStrings(offset-1);
// FmtVars.TabInfo[i].TabFmt.ForEdit.Item = GetStringFromAllStrings(offset-1);
FmtVars.TabInfo[i].TabFmt.ForEdit.Text = GetStringFromAllStrings(offset-1);
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.TabInfo[i].TabFmt.ForPrint = GetStringFromAllStrings(offset-1);
// FmtVars.TabInfo[i].TabFmt.ForPrint.Item = GetStringFromAllStrings(offset-1);
FmtVars.TabInfo[i].TabFmt.ForPrint.Text = GetStringFromAllStrings(offset-1);
}
// for (int j=0; j < 2; j++)
// {
// offset = brFmt.ReadInt16();
// if (offset > 0)
// FmtVars.TabInfo[i].TabFmt[j] = GetStringFromAllStrings(offset-1);
// }
// Sep[STRUCTDEFTYPES]
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.StepDefinitions[i].SeparatorText = GetStringFromAllStrings(offset-1);
// FmtVars.StepDefinitions[i].SeparatorText.Item = GetStringFromAllStrings(offset-1);
FmtVars.StepDefinitions[i].SeparatorText.Text = GetStringFromAllStrings(offset-1);
}
// StepPrefix[STRUCTDEFTYPES]
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.StepDefinitions[i].PrefixText = GetStringFromAllStrings(offset-1);
// FmtVars.StepDefinitions[i].PrefixText.Item = GetStringFromAllStrings(offset-1);
FmtVars.StepDefinitions[i].PrefixText.Text = GetStringFromAllStrings(offset-1);
}
// StepSuffix[STRUCTDEFTYPES]
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.StepDefinitions[i].SuffixText = GetStringFromAllStrings(offset-1);
// FmtVars.StepDefinitions[i].SuffixText.Item = GetStringFromAllStrings(offset-1);
FmtVars.StepDefinitions[i].SuffixText.Text = GetStringFromAllStrings(offset-1);
}
// IdentB
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.DefaultBullet = GetStringFromAllStrings(offset-1);
FmtVars.DefaultBullet.Text = GetStringFromAllStrings(offset-1);
// SeqTab[9]
for (int i=0; i<9; i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.SeqSubStpTabFmt[i] = GetStringFromAllStrings(offset-1);
// FmtVars.SeqTabInfo[i].SeqSubStpTabFmt = GetStringFromAllStrings(offset-1);
// FmtVars.SeqTabInfo[i].SeqSubStpTabFmt.Item = GetStringFromAllStrings(offset-1);
FmtVars.SeqTabInfo[i].SeqSubStpTabFmt.Text = GetStringFromAllStrings(offset-1);
}
// ReplaceWord[REPLACESIZE]
for (int i=0;i<FmtVars.MaxReplaceItems; i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.ReplaceWordList[i].ReplaceWord = GetStringFromAllStrings(offset-1);
// FmtVars.ReplaceWordList[i].ReplaceWord.Item = GetStringFromAllStrings(offset-1);
FmtVars.ReplaceWordList[i].ReplaceWord.Text = GetStringFromAllStrings(offset-1);
}
// ReplaceWith[REPLACESIZE]
for (int i=0;i<FmtVars.MaxReplaceItems; i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.ReplaceWordList[i].ReplaceWith = GetStringFromAllStrings(offset-1);
// FmtVars.ReplaceWordList[i].ReplaceWith.Item = GetStringFromAllStrings(offset-1);
FmtVars.ReplaceWordList[i].ReplaceWith.Text = GetStringFromAllStrings(offset-1);
}
// MatchProcNumber[10]
for (int i=0;i<10;i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.ProcDescriptors[i].MatchProcNumber = GetStringFromAllStrings(offset-1);
// FmtVars.ProcDescriptors[i].MatchProcNumber.Item = GetStringFromAllStrings(offset-1);
FmtVars.ProcDescriptors[i].MatchProcNumber.Text = GetStringFromAllStrings(offset-1);
}
// ProcDescriptor[10]
for (int i=0;i<10;i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.ProcDescriptors[i].ProcDescriptor = GetStringFromAllStrings(offset-1);
// FmtVars.ProcDescriptors[i].ProcDescriptor.Item = GetStringFromAllStrings(offset-1);
FmtVars.ProcDescriptors[i].ProcDescriptor.Text = GetStringFromAllStrings(offset-1);
}
// ProcDescriptor2[10]
for (int i=0;i<10;i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.ProcDescriptors[i].ProcDescriptor2 = GetStringFromAllStrings(offset-1);
// FmtVars.ProcDescriptors[i].ProcDescriptor2.Item = GetStringFromAllStrings(offset-1);
FmtVars.ProcDescriptors[i].ProcDescriptor2.Text = GetStringFromAllStrings(offset-1);
}
// VersionIdText[5]
for (int i=0; i<5; i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.VersionIdText[i] = GetStringFromAllStrings(offset-1);
FmtVars.VersionIDText[i].Text = GetStringFromAllStrings(offset-1);
// FmtVars.VersionIDText[i].Item = GetStringFromAllStrings(offset-1);
}
// DelimiterForTransitionTitle
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.DelimiterForTransitionTitle = GetStringFromAllStrings(offset-1);
FmtVars.DelimiterForTransitionTitle.Text = GetStringFromAllStrings(offset-1);
// SetpSubstepDelimeter
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.StepSubstepDelimeter = GetStringFromAllStrings(offset-1);
FmtVars.StepSubstepDelimeter.Text = GetStringFromAllStrings(offset-1);
//ThroughString
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.ThroughString = GetStringFromAllStrings(offset-1);
// FmtVars.ThroughString.Item = GetStringFromAllStrings(offset-1);
FmtVars.ThroughString.Text = GetStringFromAllStrings(offset-1);
// ProcedureSuffixFlags
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.ProcedureSuffixFlags = GetStringFromAllStrings(offset-1);
FmtVars.ProcedureSuffixFlags.Text = GetStringFromAllStrings(offset-1);
// ProcedureSuffix[10]
for (int i=0;i<10;i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.ProcedureSuffix[i] = GetStringFromAllStrings(offset-1);
// FmtVars.ProcedureSuffix[i].Item = GetStringFromAllStrings(offset-1);
FmtVars.ProcedureSuffix[i].Text = GetStringFromAllStrings(offset-1);
}
// PlantDnLoad
skip_short = brFmt.ReadUInt16();
// TopOfPageThing
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.TopOfPageThing = GetStringFromAllStrings(offset-1);
FmtVars.TopOfPageThing.Text = GetStringFromAllStrings(offset-1);
// XTitle[3][10]
for (int i=0; i < 30; i++)
skip_short= brFmt.ReadUInt16();
// TextType[10]
for(int i=0;i<10;i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.CautNoteMenuOverride[i].TextType = GetStringFromAllStrings(offset-1);
// FmtVars.CautNoteMenuOverride[i].TextType.Item = GetStringFromAllStrings(offset-1);
FmtVars.CautNoteMenuOverride[i].TextType.Text = GetStringFromAllStrings(offset-1);
}
// SectionsToPrint[10]
for (int i=0; i < 10; i++)
skip_short = brFmt.ReadUInt16();
// SectionsNumberMask[10]
for (int i=0; i < 10; i++)
skip_short = brFmt.ReadUInt16();
// SectionsToPrintTitle[10]
for (int i=0; i < 10; i++)
skip_short = brFmt.ReadUInt16();
// DocumentTitleExtensions[10]
for (int i=0; i < 10; i++)
skip_short = brFmt.ReadUInt16();
// DocumentFixFileExtensions[10]
for (int i=0; i < 10; i++)
skip_short = brFmt.ReadUInt16();
// PreSeqTab[9][2]
for (int i =0; i < 9; i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.PreSeqSubStepTab[i].ForEdit = GetStringFromAllStrings(offset-1);
// FmtVars.SeqTabInfo[i].PreSeqSubStepTab.ForEdit = GetStringFromAllStrings(offset-1);
// FmtVars.SeqTabInfo[i].PreSeqSubStepTab.ForEdit.Item = GetStringFromAllStrings(offset-1);
FmtVars.SeqTabInfo[i].PreSeqSubStepTab.ForEdit.Text = GetStringFromAllStrings(offset-1);
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.PreSeqSubStepTab[i].ForPrint = GetStringFromAllStrings(offset-1);
// FmtVars.SeqTabInfo[i].PreSeqSubStepTab.ForPrint = GetStringFromAllStrings(offset-1);
// FmtVars.SeqTabInfo[i].PreSeqSubStepTab.ForPrint.Item = GetStringFromAllStrings(offset-1);
FmtVars.SeqTabInfo[i].PreSeqSubStepTab.ForPrint.Text = GetStringFromAllStrings(offset-1);
}
// for (int j=0; j < 2; j++)
// {
// offset = brFmt.ReadInt16();
// if (offset > 0)
// FmtVars.PreSeqSubStp[i,j] = GetStringFromAllStrings(offset-1);
// }
// PostSeqTab[9][2]
for (int i =0; i<9;i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.PostSeqSubStepTab[i].ForEdit = GetStringFromAllStrings(offset-1);
// FmtVars.SeqTabInfo[i].PostSeqSubStepTab.ForEdit = GetStringFromAllStrings(offset-1);
// FmtVars.SeqTabInfo[i].PostSeqSubStepTab.ForEdit.Item = GetStringFromAllStrings(offset-1);
FmtVars.SeqTabInfo[i].PostSeqSubStepTab.ForEdit.Text = GetStringFromAllStrings(offset-1);
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.PostSeqSubStepTab[i].ForPrint = GetStringFromAllStrings(offset-1);
// FmtVars.SeqTabInfo[i].PostSeqSubStepTab.ForPrint = GetStringFromAllStrings(offset-1);
// FmtVars.SeqTabInfo[i].PostSeqSubStepTab.ForPrint.Item = GetStringFromAllStrings(offset-1);
FmtVars.SeqTabInfo[i].PostSeqSubStepTab.ForPrint.Text = GetStringFromAllStrings(offset-1);
}
// for (int j=0; j < 2; j++)
// {
// offset = brFmt.ReadInt16();
// if (offset > 0)
// FmtVars.PostSeqSubStp[i,j] = GetStringFromAllStrings(offset-1);
// }
// RNOSepString
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.RNOSepString = GetStringFromAllStrings(offset-1);
FmtVars.RNOSepString.Text = GetStringFromAllStrings(offset-1);
// UnderlineTerminate[10]
for (int i=0; i < 10; i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.UnderlineTerminate[i] = GetStringFromAllStrings(offset-1);
// FmtVars.UnderlineTerminate[i].Item = GetStringFromAllStrings(offset-1);
FmtVars.UnderlineTerminate[i].Text = GetStringFromAllStrings(offset-1);
}
// ImmStepHdr[2]
for (int i=0; i < 2; i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.ImmStepHdr[i] = GetStringFromAllStrings(offset-1);
// FmtVars.ImmStepHdr[i].Item = GetStringFromAllStrings(offset-1);
FmtVars.ImmStepHdr[i].Text = GetStringFromAllStrings(offset-1);
}
// AlternateStepTypes[5]
for (int i=0; i < 5; i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.AlternateStepTypes[i] = GetStringFromAllStrings(offset-1);
// FmtVars.AlternateStepTypes[i].Item = GetStringFromAllStrings(offset-1);
FmtVars.AlternateStepTypes[i].Text = GetStringFromAllStrings(offset-1);
}
// AlternateSubTypes[16]
for (int i=0; i < 16; i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.AlternateSubTypes[i] = GetStringFromAllStrings(offset-1);
// FmtVars.AlternateSubTypes[i].Item = GetStringFromAllStrings(offset-1);
FmtVars.AlternateSubTypes[i].Text = GetStringFromAllStrings(offset-1);
}
// SpecialChangeBar
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.ChangeBarSettings.ChgBar = GetStringFromAllStrings(offset-1);
// FmtVars.ChangeBarSettings.ChgBar.Item = GetStringFromAllStrings(offset-1);
FmtVars.ChangeBarSettings.ChgBar.Text = GetStringFromAllStrings(offset-1);
// ImperfectStructureSeparator
skip_short = brFmt.ReadUInt16();
// ObserveNCString[4][2]
for (int i=0; i < 4; i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.ObserveNCString[i].ForEdit = GetStringFromAllStrings(offset-1);
// FmtVars.ObserveNCString[i].ForEdit.Item = GetStringFromAllStrings(offset-1);
// FmtVars.ObserveNCString[i].ForEdit.Text = GetStringFromAllStrings(offset-1);
FmtVars.ObserveNCString[i].ForEdit.Text = GetStringFromAllStrings(offset-1);
if (offset > 0)
// FmtVars.ObserveNCString[i].ForPrint = GetStringFromAllStrings(offset-1);
// FmtVars.ObserveNCString[i].ForPrint.Item = GetStringFromAllStrings(offset-1);
// FmtVars.ObserveNCString[i].ForPrint.Text = GetStringFromAllStrings(offset-1);
FmtVars.ObserveNCString[i].ForPrint.Text = GetStringFromAllStrings(offset-1);
}
// for (int j=0; j < 2; j++)
// {
// offset = brFmt.ReadInt16();
// if (offset > 0)
// FmtVars.ObserveNCString[i,j] = GetStringFromAllStrings(offset-1);
// }
//UnderlineTheseChar
for (int i=0;i<FmtVars.NumStepSubStepTypes;i++)
{
offset = brFmt.ReadInt16();
if(offset >0)
// FmtVars.StepDefinitions[i].UnderlineThese = GetStringFromAllStrings(offset-1);
// FmtVars.StepDefinitions[i].UnderlineThese.Item = GetStringFromAllStrings(offset-1);
FmtVars.StepDefinitions[i].UnderlineThese.Text = GetStringFromAllStrings(offset-1);
}
// SubScriptTheseChar
skip_short = brFmt.ReadUInt16();
// RightCheckoffPrompts[MAXCHECKOFFS]
// FmtVars.CheckOffSettings.ChkOffMenuItems = new string[FmtVars.CheckOffSettings.maxcheckoffs];
// FmtVars.CheckOffSettings.ChkOffMenuItems = new ChkOffItem[FmtVars.CheckOffSettings.maxcheckoffs];
// FmtVars.CheckOffSettings.ChkOffMenuItems.Item = new string[FmtVars.CheckOffSettings.maxcheckoffs];
FmtVars.CheckOffSettings.ChkOffMenuItems = new Txt[FmtVars.CheckOffSettings.maxcheckoffs];
for (int i=0; i < FmtVars.CheckOffSettings.maxcheckoffs; i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
{
// FmtVars.CheckOffSettings.ChkOffMenuItems[i] = GetStringFromAllStrings(offset-1);
// FmtVars.CheckOffSettings.ChkOffMenuItems[i].Item = GetStringFromAllStrings(offset-1);
FmtVars.CheckOffSettings.ChkOffMenuItems[i].Text = GetStringFromAllStrings(offset-1);
}
}
// CheckOffHeadings[MAXCHKHEADINGS]
// FmtVars.CheckOffSettings.ChkOffHeadings = new string[FmtVars.CheckOffSettings.MaxCheckoffHeadings];
// FmtVars.CheckOffSettings.ChkOffHeadings = new ChkOffItem[FmtVars.CheckOffSettings.MaxCheckoffHeadings];
FmtVars.CheckOffSettings.ChkOffHeadings = new Txt[FmtVars.CheckOffSettings.MaxCheckoffHeadings];
for (int i=0; i < FmtVars.CheckOffSettings.MaxCheckoffHeadings; i++)
{
offset = brFmt.ReadInt16();
if (offset >0)
{
// FmtVars.CheckOffSettings.ChkOffHeadings[i] = GetStringFromAllStrings(offset-1);
// FmtVars.CheckOffSettings.ChkOffHeadings[i].Item = GetStringFromAllStrings(offset-1);
FmtVars.CheckOffSettings.ChkOffHeadings[i].Text = GetStringFromAllStrings(offset-1);
}
}
// WindEditFile
skip_short = brFmt.ReadUInt16();
// PSInfFile
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.PSInfFile = GetStringFromAllStrings(offset-1);
FmtVars.PSInfFile.Text = GetStringFromAllStrings(offset-1);
// RNOPreSeqTab[9][2]
for (int i=0;i<9;i++)
for (int j=0; j<2; j++)
skip_short = brFmt.ReadUInt16();
// HLStpSeparatorString
offset = brFmt.ReadInt16();
if (offset >0)
// FmtVars.HLStpSeparatorString = GetStringFromAllStrings(offset-1);
FmtVars.HLStpSeparatorString.Text = GetStringFromAllStrings(offset-1);
// HLRNOStpSeparatorString
offset = brFmt.ReadInt16();
if (offset >0)
// FmtVars.HLRNOStpSeparatorString = GetStringFromAllStrings(offset-1);
FmtVars.HLRNOStpSeparatorString.Text = GetStringFromAllStrings(offset-1);
// RNOTBIdent[MAXTABS][2]
for (int i=0;i<FmtVars.MaxTabs;i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.TabInfo[i].RNOTabFmt.ForEdit = GetStringFromAllStrings(offset-1);
// FmtVars.TabInfo[i].RNOTabFmt.ForEdit.Item = GetStringFromAllStrings(offset-1);
FmtVars.TabInfo[i].RNOTabFmt.ForEdit.Text = GetStringFromAllStrings(offset-1);
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.TabInfo[i].RNOTabFmt.ForPrint = GetStringFromAllStrings(offset-1);
// FmtVars.TabInfo[i].RNOTabFmt.ForPrint.Item = GetStringFromAllStrings(offset-1);
FmtVars.TabInfo[i].RNOTabFmt.ForPrint.Text = GetStringFromAllStrings(offset-1);
}
// for (int j=0;j<2;j++)
// {
// offset = brFmt.ReadInt16();
// if (offset > 0)
// FmtVars.TabInfo[i].RNOTabFmt[j] = GetStringFromAllStrings(offset-1);
// }
// LowserLimitDivisor
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.LowerLimitDivisor=GetStringFromAllStrings(offset-1);
FmtVars.LowerLimitDivisor.Text=GetStringFromAllStrings(offset-1);
// TransFmt[MAXTRANS]
for (int i=0;i<FmtVars.MaxTrans;i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.TransDefs[i].TransFmt = GetStringFromAllStrings(offset-1);
// FmtVars.TransDefs[i].TransFmt.Item = GetStringFromAllStrings(offset-1);
FmtVars.TransDefs[i].TransFmt.Text = GetStringFromAllStrings(offset-1);
}
// TransMenu[MAXTRANS]
for (int i=0;i<FmtVars.MaxTrans;i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.TransDefs[i].TransMenu = GetStringFromAllStrings(offset-1);
// FmtVars.TransDefs[i].TransMenu.Item = GetStringFromAllStrings(offset-1);
FmtVars.TransDefs[i].TransMenu.Text = GetStringFromAllStrings(offset-1);
}
// OutsideTransFmt[MAXTRANS]
for (int i=0;i<FmtVars.MaxTrans;i++)
skip_short = brFmt.ReadUInt16();
// OutsideTransMenu[MAXTRANS]
for (int i=0;i<FmtVars.MaxTrans;i++)
skip_short = brFmt.ReadUInt16();
// NonLinkedStepNumber
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.NonLinkedStepNumber = GetStringFromAllStrings(offset-1);
FmtVars.NonLinkedStepNumber.Text = GetStringFromAllStrings(offset-1);
// BldLstFile
skip_short = brFmt.ReadUInt16();
// AltPrintTBIdent[MAXTABS]
for (int i=0;i<FmtVars.MaxTabs;i++)
{
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.TabInfo[i].AltPrintTabFmt = GetStringFromAllStrings(offset-1);
// FmtVars.TabInfo[i].AltPrintTabFmt.Item = GetStringFromAllStrings(offset-1);
FmtVars.TabInfo[i].AltPrintTabFmt.Text = GetStringFromAllStrings(offset-1);
}
// NonLinkedCautNoteNumber
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.NonLinkedCautNoteNumber = GetStringFromAllStrings(offset-1);
FmtVars.NonLinkedCautNoteNumber.Text = GetStringFromAllStrings(offset-1);
// F_DuplexBGDirectory
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.DuplexBGDirectory = GetStringFromAllStrings(offset-1);
FmtVars.DuplexBGDirectory.Text = GetStringFromAllStrings(offset-1);
// F_DuplexDDDirectory
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.DuplexDDDirectory = GetStringFromAllStrings(offset-1);
FmtVars.DuplexDDDirectory.Text = GetStringFromAllStrings(offset-1);
// NonLinkedRNONumber
offset = brFmt.ReadInt16();
if (offset > 0)
// FmtVars.NonLinkedRNONumber = GetStringFromAllStrings(offset-1);
FmtVars.NonLinkedRNONumber.Text = GetStringFromAllStrings(offset-1);
/***********************************************/
brFmt.Close();
// Now try to xml it....
string XMLFileName = "C:\\" + fname.Substring(fname.LastIndexOf("\\")+1) + ".XML";
XmlSerializer serializer = new XmlSerializer(typeof(FmtFileVars));
TextWriter writer = new StreamWriter(XMLFileName);
serializer.Serialize(writer, FmtVars);
writer.Close();
MessageBox.Show(XMLFileName,"Created XML File:");
}
}
}