Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-09 - 43,50466/mthmrg.doc
There are 2 other files named mthmrg.doc in the archive. Click here to see a list.
LIBRARY PROGRAM #3.4.1

CALLING NAME:	MTHMRG
PREPARED BY:	BERENICE HOUCHARD
PROGRAMMED BY:	BERENICE HOUCHARD
APPROVED BY:	JACK R. MEAGHER
DATE.	OCTOBER, 1972


				MATCH MERGE PROGRAM

1.0  GENERAL DESCRIPTION

THE MATCH MERGE PROGRAM UPDATES A DATA FILE WITH THE USER'S CHOSEN OPTION
ON A CERTAIN KEY WORD.  THE FIVE OPTIONS AVAILABLE ARE:  REPLACE, INSERT,
DELETE, MISMATCH AND MATCH.
A FILE IS UPDATED BY EITHER REPLACING, ADDING, DELETING A RECORD OR BY
CREATING MATCHED AND MISMATCHED FILES.

2.0  LIMITATIONS & REQUIREMENTS
    1.	TWO INPUT DATA FILES ARE REQUIRED:
	(A)  AN ORIGINAL DATA FILE TO BE UPDATED, AND
	(B)  AN UPDATING FILE.

    2.	THE INPUT FILES SHOULD BE ON THE USER'S AREA BEFORE EXECUTION
	UNDER A FILENAME NOT MORE THAN SIX CHARACTERS LONG WITH OR 
	WITHOUT AN EXTENSION.

    3.	THERE IS NO LIMIT ON FILE SIZE.

    4.	PROGRAM GENERATES OUTPUT FILES AND AUTOMATICALLY ASSIGNS NAMES.
	THE FILENAMES HAVE THE FORM ?N.DAT WHERE ? RANGES FROM A TO Z
	AND N RANGES FROM 1 TO 3.

    5.	THE PROGRAM CAN BE REPEATED AT MOST 26 TIMES PER EXECUTION.


3.0  PROGRAM CAPABILITIES & OPTIONS
THE MATCH MERGE PROGRAM CAN BE PROCESSED BY BATCH OR TERMINAL.  THE
PROGRAM IS IN CONVERSATIONAL MODE TO ALLOW INTERACTION WITH THE USER
ON TERMINAL JOBS.


3.1  PROGRAM OUTLINE
FOLLOWING IS AN OUTLINE OF THE PROGRAM OPTIONS.  THE STATEMENTS LISTED
BELOW WILL BE TYPED OUT BY THE PROGRAM IN WHICH A RESPONSE IS IMPERATIVE
 TO EACH LINE.  ON BATCH JOB, MAKE UP ONE CARD FOR EACH APPROPRIATE STATEMENT.
 ALL ENTRIES ON TERMINAL JOBS ARE TERMINATED BY A "<CR>".

LINE 1    ENTER INPUT DATA FILENAME--
ENTER NAME OF THE DATA FILE TO BE UPDATED.  THIS NAME SHOULD BE AT MOST
SIX (6) CHARACTERS LONG WITH OR WITHOUT EXTENSION.

LINE 2    UPDATE FILENAME--
ENTER THE NAME OF THE UPDATING FILE.  AGAIN, THIS NAME SHOULD BE AT
MOST SIX (6) CHARACTERS LONG WITH OR WITHOUT EXTENSION.  EVIDENTLY, 
ENTRIES FOR LINES 1 AND 2 CANNOT BE IDENTICAL.

LINE 3    ENTER OPTION (REPLACE, INSERT,DELETE,MISMATCH,MATCH)--

ENTER ONE OF THE ABOVE OPTIONS ENCLOSED IN PARENTHSES.  THE FIRST 
THREE OPTIONS ARE SELF-EXPLANATORY, AFILE IS UPDATED BY EITHER REPLACING,
INSERTING OR DELETING A SPECIFIC RECORD.  IN THE LAST TWO OPTIONS,
RECORDS IN THE DATA FILE AND THE UPDATING FILE THAT DO NOT MATCH
WITH ONE ANOTHER ARE PLACED IN TWO DIFFERENT FILES.  A THIRD FILE IS 
GENERATED COMPRISING OF , IN THE CASE OF THE MATCH OPTION,  RECORDS
PRESENT IN BOTH INPUT DATA FILES; AND IN THE CASE OF THE MISMATCH 
OPTION, RECORDS FROM BOTH INPUT DATA FILES THAT DO NOT MATCH WITH ONE
ANOTHER.

LINE 4    KEY WORD LOCATED IN COLUMNS--FROM,TO--

ALL UPDATING IS BASED ON THE KEY WORD, EXAMPLE:  STUDENT NUMBER, LAST
NAME OF A PERSON, CATALOG NUMBER.  THE KEY WORD SHOULD APPEAR
IN THE SAME COLUMNS FOR EVERY RECORD OF BOTH INPUT DATA FILES.  IT
CAN BE AT MOST 80 CHARACCTERS LONG.

IN THIS LINE INDICATE WHERE THE KEY WORD IS LOCATED BY ENTERING THE FIRST AND
LAST COLUMNS BETWEEN WHICH THE KEY WORD IS SITUATED.  SEPARATE THE TWO NUMBERS BY A
 COMMA.

LINE 5    END OF JOB, TYPE 1 TO CONTINUE OR 0 TO TERMINATE--

AT THIS STAGE, ONE UPDATING JOB IS DONE.  THE USER HAS THE CHOICE OF
REPEATING THE PROCESS, IN THIS CASE ENTER A 1 AND PROCEED TO LINE 1
OR BRANCHING OUT OF THE PROGRAM, IN THIS CASE ENTER A 0.


3.2    PROGRAM OUTPUT
   (1)	A SUMMARY REPORT THAT COMES OUT ON THE TERMINAL ON TERMINAL
	JOBS OR ON THE TRAILER SHEET ON BATCH JOBS.
   (2)	OUTPUT FILES
	OUTPUT FILES HAVE THE FORM ?N.DAT, WHERE ? RANGES FROM A TO Z
	CORRESPONDING TO THE ALLOWABLE 26 REPETITIONS PER EXECUTION AND
	AND N RANGES FROM 1 TO 3 TO BE EXPLAINED BELOW:

	TWO OUTPUT FILES WILL BE GENERATED WITH THE REPLACE, INSERT AND
	DELETE OPTIONS.  THE FIRST FILE, WHERE N=1, IS THE FINAL UPDATED
	FILE.  THE SECOND FILE, WITH N=2, CONSISTS OF ALL RECORDS IN THE 
	INPUT UPDATING FILE THAT ARE NOT USED.  OBVIOUSLY, IN THE THE CASE
	WHERE ALL THE RECORDS ARE USED, THE SECOND FILE WILL BE EMPTY.

	THREE OUTPUT FILES WILL BE GENERATED WITH THE MISMATCH AND
	MATCH OPTIONS.  THE FIRST TWO FILES, WITH N=1 AND 2, COMPRISE
	OF RECORDS FROM THE ORIGINAL DATA FILE AND THE UPDATING
	FILE RESPECTIVELY THAT DO NOT MATCH WITH ONE ANOTHER.  IN THE
	CASE OF THE MISMATCH OPTION, THE THIRD FILE CONSISTS OF RECORDS
	FROM BOTH INPUT DATA FILES THAT DO NOT MATCH WITH ONE ANOTHER.  
	IN THE CASE OF THE MATCH OPTION,THE THIRD FILE CONSISTS OF
	RECORDS THAT ARE PRESENT IN BOTH INPUT DATA FILES.  FOR 
	EXAMPLE, SUPPOSE TWO DATA FILES, DATA1.FIL AND DATA2.FIL
	ARE TO BE UPDATED BY UP1.FIL AND UP2.FIL WITH OPTIONS DELETE
	AND MATCH RESPECTIVELY.  THEN, ASIDE FROM THE TWO SUMMARY REPORTS
	FIVE (5) OUTPUT FILES WILL BE GENERATED; NAMELY A1.DAT, A2.DAT,
	B1.DAT, B2.DAT, B3.DAT.

4.0  METHOD OF USE 

PROCEDURE AND SET UP FOR TERMINAL AND BATCH JOBS DIFFER SLIGHTLY.

4.1  TERMINAL JOB

FOLLOWING A SUCCESSFUL LOGIN, IF THE USER NEEDS TO PUT THE DATA ON
THE DISK ENTER THE FOLLOWING LINES (DO NOT TYPE IN THE PERIODS AND 
STARS I.E. . AND *):

.AS CDR<CR>				ASSIGN CARD READER TO USER'S JOB

.R PIP					MONITOR CONTROL INSTRUCTION
*DATA.DAT=CDR:				THESE LINES IN ESSENCE ARE
*UP.DAT=CDR:				2*N NUMBER OF LINES WHERE
					  (A)  N=# OF DATA FILES TO BE
					       BE CREATED AND UPDATED.
					  (B)  THE NAMES DATA.DAT AND
					       UP.DAT ARE ARBITRARY,

*^C					MONITOR CONTROL INSTRUCTION

.DEAS CDR<CR>				DEASSIGN CARD READER


TO START PROGRAM EXECUTION, ENTER "R MTHMRG<CR>".  INTERACTION BETWEEN
USER AND PROGRAM BEGINS AT THIS POINT.  THE PROGRAM WILL TYPE OUT THE
STATEMENTS OUTLINED IN SECTION 3.1.

OUTPUT DISK FILES WILL HAVE <077> PROTECTION CODE, USER IS ADVISED TO
 CHANGE THE PROTECTION CODE IF THE FILES ARE TO BE SAVED FOR FUTURE USE.
  ONE WAY OF GIVING A HIGHER PROTECTION CODE WILL BE,

	.PRO ??.DAT<155><CR>

4.1.1  SAMPLE TERMINAL RUN

CONSIDER A DATA FILE INI.DAT TO BE UPDATED BY UP.DAT.  THE KEY WORD IS
LOCATED IN COLUMNS 1 TO 5.  TWO OPTIONS ARE SELECTED USING THE SAME
INPUT FILES.

NOTE:	EXCEPT FOR PROMPTINGS, <CR> AND ALL INFORMATION ON THE
	SAME LINE WITH <CR> ARE ENTERED BY USER.


.R MTHMRG<CR>

ENTER INPUT DATA FILENAME--INI.DAT<CR>
          UPDATE FILENAME--UP.DAT<CR>

ENTER OPTION (REPLACE,INSERT,DELETE,MISMATCH,MATCH)--REPLACE<CR>
KEY WORD LOCATED IN COLUMNS--FROM,TO--1,5<CR>


          *****SUMMARY REPORT*****

TOTAL NUMBER OF RECORDS IN INPUT DATA FILES:
          INI.DAT    =      7
          UP.DAT     =      5

NUMBER OF RECORDS IN FINAL UPDATED FILE =       7
THIS FILE IS UNDER FILENAME A1.DAT
NUMBER OF RECORDS REPLACED =  2

NUMBER OF RECORDS IN UP.DAT     NOT USED =  3
THIS FILE IS UNDER FILENAME A2.DAT


               **************


END OF JOB, TYPE 1 TO CONTINUE OR 0 TO TERMINATE--1<CR>


ENTER INPUT DATA FILENAME--INI.DAT
          UPDATE FILENAME--UP.DAT

ENTER OPTION (REPLACE,INSERT,DELETE,MISMATCH,MATCH)--MATCH<CR>
KEY WORD LOCATED IN COLUMNS--FROM,TO--1,5<CR>


          *****SUMMARY REPORT*****

TOTAL NUMBER OF RECORDS IN INPUT DATA FILES:
          INI.DAT    =      7
          UP.DAT     =      5

NUMBER OF RECORDS MISMATCHED IN INI.DAT    =  5
THIS FILE IS UNDER FILENAME B1.DAT

NUMBER OF RECORDS MISMATCHED IN UP.DAT     =  3
THIS FILE IS UNDER FILENAME B2.DAT

TOTAL NUMBER OF RECORDS MATCHED =  2
THIS FILE IS UNDER FILENAME B3.DAT


               **************


END OF JOB, TYPE 1 TO CONTINUE OR 0 TO TERMINATE--0<CR>

EXIT
.



FOR REFERENCE PURPOSES, FOLLOWING ARE THE INPUT AND OUTPUT FILES:

				INPUT FILES

  INI.DAT					   UP.DAT

12384AAAAAAA					11111KOKOKOK
29384KKKKKKK					28345UPUPUPU
98475IIIIIII					12384HUHUHUH
18273LLLLLLL					73849UIUIUIU
29389KKKKKKK					29381TYTYTYT
87645OOOOOOO
29381LLLLLLL


REPLACE OPTION			OUTPUT FILES

A1.DAT						A2.DAT

12384HUHUHUH					11111KOKOKOK
18273LLLLLLL					28345UPUPUPU
29381TYTYTYT					73849UIUIUIU
29384KKKKKKK
29389KKKKKKK
87645OOOOOOO
98475IIIIIII


MATCH OPTION

B1.DAT			B2.DAT			B3.DAT
18273LLLLLLL		11111KOKOKOK		12384AAAAAAA
29384KKKKKKK		28345UPUPUPU		29381LLLLLLL
29389KKKKKKK		73849UIUIUIU
87645OOOOOOO
98475IIIIIII


4.2  BATCH JOB

THE FOLLOWING  IS A BATCH JOB SET UP:  (EACH LINE REPRESENTS ONE
CARD, EACH CARD STARTING IN COLUMN 1; DO NOT INCLUDE THE COMMENTS AT THE
RIGHT.  IGNORE $DECK TO $EOD IF DATA ARE ALREADY ON THE DISK.


					COMMENTS

$JOB [#,#]				JOB CARD; INSERT USER'S PROJECT
					PROGRAMMER NUMBER WITHIN THE BRACKET

$PASSWORD ######			IN PLACE OF THE 6 #'S, PUT  IN THE 
					PASSWORD.

$DECK FILE.EXT				FILE.EXT IS A DUMMY NAME USED IN THIS
					WRITEUP.  THE USER IS EXPECTED TO
					PROVIDE A UNIQUE NAME TO EACH DATA
					FILE.
					DO NOT USE ANY OF THE OUTPUT
					FILE NAMES TO BE GENERATED BY THE
					PROGRAM.

    (DATA CARDS)			INSERT THE DATA CARDS TO BE UPDATED
					HERE
(REPEAT THE ABOVE 4 LINES AS MANY TIMES AS THERE ARE DATA FILES TO BE UPDATED.)

$EOD					SIGNIFY THE END OF THE DATA DECKS.

.R MTHMRG				START PROGRAM EXECUTION.

   (RESPONSES TO LINES 1-5 IN
		 SECTION 3.1)		USER'S RESPONSES.

.PRO ??.DAT<155>			TO PROTECT OUTPUT FILES.

.Q ??.DAT/FI:AS				IF YOU WANT A LISTING OF THE OUTPUT
					FILES, USE THIS LINE OTHERWISE IGNORE IT.

***********************************************************************

IF YOU WANT A CARD DECK OF THE OUTPUT FILES, USE THE FOLLOWING

.PLEASE START THE CDP SPOOLER

.Q CDP:=??.DAT
***********************************************************************


(EOF)						AN END-OF-FILE CARD