I have raw code export:
Cross Post:
http://www.msofficeforums.com/excel-programming/31160-parsing-code-macro-trouble.html
http://www.excelforum.com/showthread.php?t=1139253&p=4386328&highlight=#post4386328
And I want to parse it in to a table like this
Its not finished but you get the picture
<tbody>
</tbody>
Cross Post:
http://www.msofficeforums.com/excel-programming/31160-parsing-code-macro-trouble.html
http://www.excelforum.com/showthread.php?t=1139253&p=4386328&highlight=#post4386328
STEP NAME="S0" { DESCRIPTION="Abort Logic" RECTANGLE= { X=205 Y=60 H=40 W=120 } } STEP NAME="S10" { DESCRIPTION="Abort State Setup" RECTANGLE= { X=205 Y=196 H=40 W=120 } ACTION NAME="A1" { DESCRIPTION="Set unit message to message 10" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'^/P_MSG_PATH.CV' := '^/P_MSG_10'; '^/P_MSG_TYPE.CV' := 'MSG_TYPE:Failure'" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A2" { DESCRIPTION="Set Failure Devices Mask to 0" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'^/FAIL_MONITOR/DEV_FAIL_MASK.CV' := 0;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A3" { DESCRIPTION="Disable Process Failure Conditions " ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'^/FAIL_MONITOR/CND1/DISABLE.CV' := 1; '^/FAIL_MONITOR/CND2/DISABLE.CV' := 1; '^/FAIL_MONITOR/CND3/DISABLE.CV' := 1; '^/FAIL_MONITOR/CND4/DISABLE.CV' := 1;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A4" { DESCRIPTION="If PH-ARB composite is active then set PH-ARB composite to stop" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="IF '^/FAIL_MONITOR/PH-ARB/STATE.CV' = '$sfc_states:Sequence Active' THEN ENDIF;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A5" { DESCRIPTION="Send Sync message 254 to Destination Unit" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'//#THIS-UNIT#/U_SYNC_MSG_WR.CV' := 'SYNC_MSG:Phase Aborted';" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A6" { DESCRIPTION="Clear unit message 2" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'^/P_MSG_PATH2.CV' := """"; '^/P_MSG_TYPE2.CV' := 'MSG_TYPE:Information'" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } } STEP NAME="S20" { DESCRIPTION="Set EM Abort State" RECTANGLE= { X=205 Y=332 H=40 W=120 } ACTION NAME="A1" { DESCRIPTION="Set #EM_INLET# to HOLD" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="IF '//#EM_INLET#/OWNER_ID.CV' = '/THIS-UNIT' THEN ENDIF;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A2" { DESCRIPTION="Set #EM_PRESS# to HOLD" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="IF '//#EM_PRESS#/OWNER_ID.CV' = '/THIS-UNIT' THEN ENDIF;" DELAY_TIME=0 CONFIRM_EXPRESSION="TRUE" CONFIRM_TIME_OUT=0 } ACTION NAME="A3" { DESCRIPTION="Set #EM_OUTLET# to HOLD" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="IF '//#EM_OUTLET#/OWNER_ID.CV' = '/THIS-UNIT' THEN ENDIF;" DELAY_TIME=0 CONFIRM_EXPRESSION="TRUE" CONFIRM_TIME_OUT=0 } ACTION NAME="A4" { DESCRIPTION="Set #CM_OUTLET# to Close" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'//#CM_OUTLET#/CAS_SP.CV' := 'VLV_SP:CLOSE';" DELAY_TIME=0 CONFIRM_EXPRESSION="TRUE" CONFIRM_TIME_OUT=0 } ACTION NAME="A5" { DESCRIPTION="Set #CM_LPT_DRN_VLV# to Close" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'//#CM_LPT_DRN_VLV#/CAS_SP.CV' := 'VLV_SP:CLOSE';" DELAY_TIME=0 CONFIRM_EXPRESSION="TRUE" CONFIRM_TIME_OUT=0 } ACTION NAME="A6" { DESCRIPTION="Set #EM_AGIT# to HOLD" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="IF '//#EM_AGIT#/OWNER_ID.CV' = '/THIS-UNIT' THEN ENDIF;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A7" { DESCRIPTION="Set #EM_TEMP# to HOLD" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="IF '//#EM_TEMP#/OWNER_ID.CV' = '/THIS-UNIT' THEN ENDIF;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } } STEP NAME="S30" { DESCRIPTION="Disable Alarms" RECTANGLE= { X=200 Y=468 H=40 W=130 } ACTION NAME="A1" { DESCRIPTION="Disable # CM_PRESS#/LO_ALM" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'//#CM_PRESS#/LO_ENB' := False;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A2" { DESCRIPTION="Disable # CM_PRESS#/LO_LO_ALM" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'//#CM_PRESS#/LO_LO_ENB' := False;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A3" { DESCRIPTION="Disable # CM_PRESS#/HI_ALM" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'//#CM_PRESS#/HI_ENB' := False;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A4" { DESCRIPTION="Disable # CM_PRESS#/HI_HI_ALM" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'//#CM_PRESS#/HI_HI_ENB' := False;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A5" { DESCRIPTION="Disable #CM_VSL_TMP_CTRL#/LO_ALM" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'//#CM_VSL_TMP_CTRL#/LO_ENB' := False;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A6" { DESCRIPTION="Disable #CM_VSL_TMP_CTRL#/LO_LO_ALM" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'//#CM_VSL_TMP_CTRL#/LO_LO_ENB' := False;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A7" { DESCRIPTION="Disable #CM_VSL_TMP_CTRL#/HI_ALM" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'//#CM_VSL_TMP_CTRL#/HI_ENB' := False;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A8" { DESCRIPTION="Disable #CM_VSL_TMP_CTRL#/HI_HI_ALM" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'//#CM_VSL_TMP_CTRL#/HI_HI_ENB' := False;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A9" { DESCRIPTION="Disable #CM_JKT_TMP_CTRL#/LO_ALM" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'//#CM_JKT_TMP_CTRL#/LO_ENB' := False;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A10" { DESCRIPTION="Disable #CM_JKT_TMP_CTRL#/LO_LO_ALM" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'//#CM_JKT_TMP_CTRL#/LO_LO_ENB' := False;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A11" { DESCRIPTION="Disable #CM_JKT_TMP_CTRL#/HI_ALM" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'//#CM_JKT_TMP_CTRL#/HI_ENB' := False;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A12" { DESCRIPTION="Disable #CM_JKT_TMP_CTRL#/HI_HI_ALM" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'//#CM_JKT_TMP_CTRL#/HI_HI_ENB' := False;" DELAY_TIME=0 CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } } STEP NAME="S40" { DESCRIPTION="Complete" RECTANGLE= { X=205 Y=600 H=40 W=120 } ACTION NAME="A1" { DESCRIPTION="Wait for PH-ARB composite = Idle. Set PH-ARB/ARB_CMD = Release. Set PH-ARB composite to Start" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'^/FAIL_MONITOR/PH-ARB/ARB_CMD.CV' := 'PH-ARB_CMD:Release'; '^/FAIL_MONITOR/PH-ARB/COMMAND.CV' := '$sfc_commands:Start Sequence';" DELAY_EXPRESSION="'^/FAIL_MONITOR/PH-ARB/STATE.CV' = '$sfc_states:Sequence Idle'" CONFIRM_EXPRESSION="'^/FAIL_MONITOR/PH-ARB/STATE.CV' = '$sfc_states:Sequence Completed'" CONFIRM_TIME_OUT=0 } ACTION NAME="A2" { DESCRIPTION="Wait for [1]. Clear Unit Message" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'^/P_MSG_PATH.CV' := """"; '^/P_MSG_PATH2.CV' := """"; '^/P_MSG_TYPE.CV' := 'MSG_TYPE:Information'; '^/P_MSG_TYPE2.CV' := 'MSG_TYPE:Information'; '^/P_MSG_OWNER.CV' := """"; '^/P_MSG_OWNER2.CV' := """";" DELAY_EXPRESSION="'S40/A1/STATE.CV' = '$sfc_action_states:Complete'" CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } ACTION NAME="A3" { DESCRIPTION="Wait for [2]. Clear Dynamic References" ACTION_TYPE=ASSIGN QUALIFIER=P EXPRESSION="'^/P_MSG_PATH.$REF' := """"; '^/P_MSG_TYPE.$REF' := """"; '^/P_MSG_OWNER.$REF' := """"; '^/P_MSG_PATH2.$REF' := """"; '^/P_MSG_TYPE2.$REF' := """"; '^/P_MSG_OWNER2.$REF' := """"; '//#THIS-UNIT#/U_SYNC_RD.$REF' := """" ; '//#THIS-UNIT#/U_SYNC_MSG_RD.$REF' := """" ;" DELAY_EXPRESSION="'S40/A2/STATE.CV' = '$sfc_action_states:Complete'" CONFIRM_EXPRESSION="True" CONFIRM_TIME_OUT=0 } } INITIAL_STEP="S0" TRANSITION NAME="T0" { DESCRIPTION="Pass Through" POSITION= { X=255 Y=138 } TERMINATION=F EXPRESSION="True" } TRANSITION NAME="T10" { DESCRIPTION="Wait for actions to complete" POSITION= { X=255 Y=274 } TERMINATION=F EXPRESSION="'S10/PENDING_CONFIRMS' = 0" } TRANSITION NAME="T20" { DESCRIPTION="Wait for actions to complete" POSITION= { X=255 Y=410 } TERMINATION=F EXPRESSION="'S20/PENDING_CONFIRMS' = 0" } TRANSITION NAME="T30" { DESCRIPTION="Wait for actions to complete" POSITION= { X=255 Y=546 } TERMINATION=F EXPRESSION="'S30/PENDING_CONFIRMS' = 0" } TRANSITION NAME="T40" { DESCRIPTION="Abort complete" POSITION= { X=255 Y=682 } TERMINATION=T EXPRESSION="'S40/PENDING_CONFIRMS.CV' = 0" } STEP_TRANSITION_CONNECTION STEP="S0" TRANSITION="T0" { } STEP_TRANSITION_CONNECTION STEP="S10" TRANSITION="T10" { } STEP_TRANSITION_CONNECTION STEP="S20" TRANSITION="T20" { } STEP_TRANSITION_CONNECTION STEP="S30" TRANSITION="T30" { } STEP_TRANSITION_CONNECTION STEP="S40" TRANSITION="T40" { } TRANSITION_STEP_CONNECTION TRANSITION="T0" STEP="S10" { } TRANSITION_STEP_CONNECTION TRANSITION="T10" STEP="S20" { } TRANSITION_STEP_CONNECTION TRANSITION="T20" STEP="S30" { } TRANSITION_STEP_CONNECTION TRANSITION="T30" STEP="S40" { } }
<tbody>
</tbody>
And I want to parse it in to a table like this
Its not finished but you get the picture
Step | Action | Description | |||
<tbody> </tbody> |
<tbody> </tbody> |
<tbody> </tbody> | |||
<tbody> </tbody> |
<tbody> </tbody> |
<tbody> </tbody> | |||
S10 |
<tbody> </tbody> |
<tbody> </tbody> | |||
A2 |
<tbody> </tbody> | ||||
A3 |
<tbody> </tbody> | ||||
A4 |
<tbody> </tbody> | ||||
A5 |
<tbody> </tbody> | ||||
A6 |
<tbody> </tbody> | ||||
T10 | T10 |
<tbody> </tbody> | |||
S20 |
<tbody> </tbody> | Set #EM_INLET# to HOLD | |||
A2 | Set #EM_PRESS# to HOLD |
<tbody>
</tbody>
Last edited: