0JZKER JALEXEC:ASCNUM.TECA0JZXUZK 0JZKERIN1EXNEN3.TTTA0JX4MU(Q5)UN The user input the number "N" = QN 0JXS0KZK:GS0JHK0JZKERIN1EXNEN1.TTTA0JXAZK0JHK0JZKERIN1EXNEN2.TTTA0JXS0KZKGS 0JIERZJ27I27I0JXFZKMFA "Start_string" the user input 0JXS0KZK:GS extract_next_not Macro Created: 0JHKI <I !A!I<I0UJ27II1:A27II ZU227IIQ2-0"E@O/T/'27II0UH27II SGS27II:;27II 0J0,ZPW27IIZK>27II0JZK!D!I 0UJ27II(QN)<1:A27II>27II ZU227IIQ2-0"E@O/V/'27II 0UH27II ZVZK>27II@O/B/'27II!T!27II QH-3"L1%H27II@O/A/'27II@O/B/'27II !V!27II !B!27I27I0JZVZXY0JHK0JZKGA0JS.K IEXN0J27IIEWZJ27I27I0JXEZKME0JHK0JZKGA0J0J27IIERZJ27I27I0JXEZKME0JHK^A EXTRACT_NEXT_NOT.TEC - Please Be Patient As This May Take A While.  Results deleted - (start string deletions not shown) MYEC0JZKEWEXTN.TTTGYEG@ZZZZZZ.ZZZ ! EXTRACT_NEXT_NOT ! 0JZKER JALEXEC:ASCNUM.TECA0JZXUZK 0JZKERIN1EXNEN3.TTT! GET "n" THE USER DESIRES TO USE ! A  0JX4MU (Q5)UN  The user input the number "N" = QN 0JXS0KZK :GS 0JHK 0JZKERIN1EXNEN1.TTT A  0JXAZK 0JHK 0JZKERIN1EXNEN2.TTT A  0JXS0KZK GS 0JIERZJ27I27I0JXFZKMF A   "Start_string" the user input  0JXS0KZK :GS  extract_next_not Macro Created:  0JHK I < I !A! I< I0UJ27I I1:A27I I ZU227I IQ2-0"E@O/T/'27I I0UH27I I S GS27I I:;27I I 0J0,ZPW27IIZK >27I I0JZK !D! I 0UJ27I I(QN)<1:A27I I>27I I ZU227I IQ2-0"E@O/V/'27I I 0UH27I I ZV ZK > 27I I@O/B/'27I I!T!27I I QH-3"L1%H27II@O/A/'27I ! GO TO END OF MACRO TO CLOSE FILE ! I@O/B/'27I I !V!27I !I QH-3"L1%H27II@O/D/'27I! I !B!27I27I 0J ZV ZXY 0JHK 0JZKGA0J S.KIEXN 0J27IIEWZJ27I27I0JXEZKME 0JHK 0JZKGA0J 0J27IIERZJ27I27I0JXEZKME 0JHK ^A EXTRACT_NEXT_NOT.TEC - Please Be Patient As This May Take A While.   Results deleted - (start string deletions not shown)  MY EC 0JZKEWEXTN.TTTGY EG@ZZZZZZ.ZZZ ! EXTRACT_NEXT_NOT ! ! THIS COMMAND LINE WILL EXTRACT_NEXT_NOT LINES FROM A FILE BASED UPON ! ! A STARTING STRING AND A NUMBER OF FOLLOWING LINES. ! ! ! ! IT IS THE "NOT" FUNCTION OF EXTRACT_NEXT ! ! ! ! THE ORIGIONAL FILES WILL REMAIN UNMODIFIED ! ! ! ! THE RESULTS WILL BE PLACED IN "FILENAME.EXT" ! ! ! ! GET THE MACRO FOR DOING THE ASCII NUMBER TO TECO NUMBER CONVERSION ! ! PUT IT IN BUFFER "U" ! ! THE NUMBER IT CONVERTS TO IS IN BUFFER "5" ! ! THE NUMBER IT CONVERTS FROM IS IN BUFFER "4" ! 0JZKER JALEXEC:ASCNUM.TECA0JZXUZK 0JZKERIN1EXNEN3.TTT! GET "n" THE USER DESIRES TO USE ! ! ELIMINATE ANY CARRIAGE RETURNS! A  ! CONVERT THE NUMBER FROM ASCII TO THE TECO EQIVALENT ! 0JX4MU ! LOAD BUFFER "N" WITH THE VALUE OF THE CHARACTER ! (Q5)UN ! SHOW THE USER THE "n" !  The user input the number "N" = QN 0JXS0KZK :GS 0JHK 0JZKERIN1EXNEN1.TTT ! GET THE NAME OF THE FILE ! ! ELIMINATE ANY CARRIAGE RETURNS! A  ! SAVE IT IN "A" BUFFER! 0JXAZK 0JHK 0JZKERIN1EXNEN2.TTT ! GET START STRING THE USER DESIRES TO USE ! ! ELIMINATE ANY CARRIAGE RETURNS! A  ! SAVE THE START STRING FILE NAME IN THE "S" BUFFER ! 0JXS0KZK ! GET THE ACTUAL "START_STRING" ! ! OUT OF THE "F" BUFFER ! GS 0JIERZJ27I27I0JXFZKMF ! ELIMINATE ANY CARRIAGE RETURNS! A  ! SAVE THE START STRING IN THE "S" BUFFER ! ! SHOW THE USER THE CREATED MACRO !  "Start_string" the user input  0JXS0KZK :GS ! SHOW THE USER THE CREATED MACRO !  extract_next_not Macro Created:  ! BUILD THE EXTRACT_NEXT_NOT MACRO ! ! READ IN A LINE AT A TIME ! ! KILL TILL START STRING FOUND ! ! WRITE OUT EACH TILL STOP STRING FOUND ETC. ! ! ! ! THE WAY TO DO THIS IS TO HAVE TWO SECTIONS IN THE MAIN LOOP THAT ! ! EXECUTE "START" STRING MACRO TO KILL TILL "START" FOUND THEN GO TO ! ! SECOND MACRO TO SAVE TILL "STOP" FOUND ! 0JHK ! CREATE THE "EXTRACT_NEXT_NOT" MACRO STRING MARO ! !~ ! ! TOP OF LOOP ! I < I !A! I< ! ZERO ZERO PAGE TEST BUFFER ! I0UJ27I ! READ A LINE ! I1:A27I !PUT BUFFER LENGTH IN BUFFER 2 ! I ZU227I ! IF NO MORE LEFT IN THIS FILE DONT TRY TO EXTRACT_NEXT_NOT ANY MORE ! IQ2-0"E@O/T/'27I ! RESET THE BUFFER LENGTH TEST ! I0UH27I ! SEARCH FOR THE "START_STRING" & SAVE TILL ITS FOUND ! I S GS27I ! ON SEARCH SUCESS EXIT LOOP ! I:;27I ! SAVE THE INPUT LINE BECAUSE "START_STRING" NOT FOUND YET ! I 0J0,ZPW27IIZK >27I ! END OF FIRST LOOP ! ! "START_STRING" FOUND SO START SAVING TILL "STOP_STRING FOUND ! ! ! ! TOP OF SECOND LOOP ! ! ! ! KILL THE FOUND BEGIN_STRING ALSO ! I0JZK !D! I 0UJ27I ! READ "N" LINES ! I(QN)<1:A27I I>27I !PUT BUFFER LENGTH IN BUFFER 2 ! I ZU227I ! IF NO MORE LEFT IN THIS FILE DONT TRY TO EXTRACT_NEXT_NOT ANY MORE ! IQ2-0"E@O/V/'27I ! RESET THE BUFFER LENGTH TEST ! I 0UH27I ! KILL "N" LINES ! I ZV ZK > 27I ! GO TO END OF MACRO TO CLOSE FILE ! I@O/B/'27I I!T!27I ! NOT 3 EMPTY BUFFERS YET SO NOT DONE ! I QH-3"L1%H27II@O/A/'27I ! GO TO END OF MACRO TO CLOSE FILE ! I@O/B/'27I I !V!27I ! NOT 3 EMPTY BUFFERS YET SO NOT DONE GO BACK TO TOP OF SECOND LOOP ! !I QH-3"L1%H27II@O/D/'27I! ! ALL DONE THIS FILE BECAUSE EMPTY PAGE WAS READ IN ! I !B!27I27I ! SAVE THE CREATED "EXTRACT_NEXT_NOT" MACRO IN BUFFER "Y" ! 0J ZV ZXY 0JHK ! OPEN THE OUTPUT FILE FROM BUFFER "A" USE BUFFER "E" ! 0JZKGA0J S.KIEXN 0J27IIEWZJ27I27I0JXEZKME 0JHK ! OPEN THE INPUT FILE FROM BUFFER "A" USE BUFFER "E" ! 0JZKGA0J 0J27IIERZJ27I27I0JXEZKME 0JHK ! NOW READ IN INPUT FILE A LINE AT A TIME "FILE A" ! ! AND OUTPUT TO FILE "C" ! ^A EXTRACT_NEXT_NOT.TEC - Please Be Patient As This May Take A While.  ! SHOW THE USER WHAT HE GOT !  Results deleted - (start string deletions not shown)  ! EXECUTE THE "EXTRACT_NEXT_NOT" MACRO ! MY ! CLOSE THE OUTPUT FILE ! EC ! TEMP SAVE THE CREATED "EXTRACT_NEXT_NOT MACRO ! 0JZKEWEXTN.TTTGY EG@ZZZZZZ.ZZZ