KEEP [ EDIT/3000:Reference Manual ] MPE/iX 5.0 Documentation
EDIT/3000:Reference Manual
KEEP
3-62. KEEP COMMAND
3-63. Purpose.
The KEEP command saves the contents of the WORK file.
3-64. Form.
The form of the KEEP command is
K[EEP][filename [(range)] [,UNN[UMBERED] ] ]
or
K[EEP] Q filename
For example,
* KEEP KFILE (45/678),UNNUMBERED
3-65. Description.
If the filename parameter of the KEEP command refers to a new file, a
file is opened under this name by MPE/3000, and the WORK file contents
are stored on disc in this file. When range is specified in a KEEP
command, only those lines in the WORK file specified by range are saved.
(If a column number is specified in range, the entire line containing
that column is saved.)
The file specified by filename must be in the log-on account.
In an interactive session, if an existing file is named in the KEEP
command, EDIT/3000 asks if you wish to purge the old contents of the
file. A positive response (YES or Y) causes the contents of the old file
to be purged and the contents of the WORK file to be written into the
kept file. Any other response terminates the KEEP operation.
If the KEEP command is used without any parameters, the filename is
implied from the previous KEEP or TEXT command (whichever was performed
last). If the UNNUMBERED option was specified in the previous KEEP or
TEXT command, then this is also implied for the current KEEP command.
EDIT/3000 produces an echo of the filename (and possibly the UNNUMBERED
option) and copies the entire WORK file con- tents to that file.
The following example shows the KEEP command used without any parameters.
In this case, both the filename and the UNNUMBERED option are implied:
:EDITOR
HP 32201A.7.01 EDIT/3000 WED, MAY 3, 19878, 1:33 PM
(C) HEWLETT-PACKARD CO. 1976
/TEXT KEPFIL,UNN
/a
4 MODIFICATIONS
5 MORE: TO COME
6 ...
/K
KEPFIL, UNN
KEPFIL ALREADY EXISTS - RESPOND YES TO PURGE OLD AND THEN KEEP
PUFGE OLD?Y
/END
END OF SUBSYSTEM
:
Another example follows. This time only the filename is implied:
:EDITOR
HP32201A.7.01 EDIT/3000 WED, MAY 3, 1978, 1:43 PM
(C) HEWLETT-PACKARD CO, 1976
/TEXT KEPFIL
/A
7 several changes in addition
8 MORE TO COME
9 ...
/K
KEPFIL
KEPFTL ALREADY EXISTS - RESPOND YES TO PURGE OLD AND THEN KEEP
PURGE OLD?Y
/END
END OF SUBSYSTEM
If the file in question belongs to a group and/or account other than that
of the log-on account, the filename , group, and account are echoed.
In batch mode the contents of the old file are purged automatically when
an existing old file is named in a KEEP command.
Records in the WORK file are saved as fixed-length records unless the SET
VARIABLE option of the SET command is used, in which case the records are
saved as variable-length records. (See paragraph 3-92 for a discussion
of the SET command.)
An MPE/3000 error message is displayed if access to a file is not
possible. See the MPE Commands Reference Manual for a discussion of file
access.
Unless the UNNUMBERED parameter is specified in the KEEP command, the
line numbers in the WORK file are placed in the kept file in ASCII
format. The SET FRONT, SET REAR, and SET FORMAT commands determine where
the line number information will be kept (front or rear of each record).
See paragraph 3-92 for discussions of these commands. Line numbers in
the WORK file are not copied to the kept file when the UNNUMBERED
parameter of the KEEP command is declared.
Note that the default KEEP file is limited to disc files on the local
computer. If a device or remote file is being used, an MPE file equation
must have been issued and an asterisk (*) must be used to back-reference
the file. (See the example of keeping to a card punch device in
paragraph 3-67.)
The KEEPQ filename command saves the WORK file in its "edit" format,
instead of in the format in which files normally are stored by the
MPE/3000 file system. This is accomplished by appending EDIT/3000
variables to the file and assigning a filecode of 1050 or 1051 to the
file. A filecode of 1050 signifies an EDIT/3000 KEEPQ file (non-COBOL)
and a filecode of 1051 signifies an EDIT/300OKEEPQ file (COBOL). All such
files are intended to be read only by EDIT/3000 although KEEPQ files can
also be read by SPL/ 3000. To add the lockword to the new file would
require EDIT/3000 to save it internally and thus cause a possible
security violation.
3-66. Limitations.
The range and UNNUMBERED parameters of the KEEP command may be used only
with the KEEP filename (or K filename) variation of the KEEP command.
These parameters may not be used with the KEEPQ filename (or KQ filename)
variation of the command.
Note that the KEEP command does not put a lockword on the file unless you
explicitly specify one. For example, suppose you have a file named
MYFILE with the lockword LOCKED. Issuing the command KEEP MYFILE/LOCKED
will purge the old file and put the lockword LOCKED on the new file.
However, if you issue the command KEEP MYFILE or if you issue the command
K[EEP] with no parameters, you will be prompted for the lockword and
EDIT/3000 will purge the old file (if you have supplied the correct
lockword) and create a new file named MYFILE without a lockword.
A TEXT command (see paragraph 3-98) to copy the contents of an EDIT/3000
KEEPQ file into the WORK file renames that file with an EDIT/3000 Knnn
name. To prevent destruction of such a file, enter the commands TEXT
filename and KEEP filename in succession.
If SET FIXED is in effect, the KEEP file will have
* record size = SET LENGTH if the file is unnumbered
* record size = SET LENGTH + 6 bytes if the file is numbered in the
COBOL format
* record size = SET LENGTH + 8 bytes if the file is numbered in the
default format
The blocking factor is calculated to allow the optimal trade-off between
disc space used and time required for input-output.
If SET VARIABLE is in effect, the KEEP file will have
* record size = 1276 bytes
* blocking factor = 1
Using this large record size maximizes the disc space used by allowing
many variable-length records to be entered in a single block.
Any of these attributes can be overridden by back-referencing a file
equation for the KEEP file in the KEEP command.
NOTE If a file equation is used to decrease the record size for a
variable- length file, it may be necessary also to include the DISC
parameter to increase the file limit. The default limit allows
only as many blocks as are necessary to store all records when the
block size is 1276 bytes.
Trying to KEEP a numbered file which is greater than 256 bytes wide
(including 8 bytes for sequence numbers) will result in error #75,
RECORDS TOO WIDE - KEEP UNNUMBERED.
3-67. Examples.
Several variations of the KEEP command are shown in the following
examples.
* KEEP filename
The first example uses the KEEP EDIT2 command to keep the file EDIT2.
Because EDIT2 is an existing file, EDIT/3000 asks if it is OK to purge
the old file.
HP 32201A.4.01 EDIT/3000 WED, MAY 14, 1975, 3:43 PM
/T EDIT2;L ALL
1 1-2. WHAT IS EDIT/3000?
2
3 EDIT/3000 IS A SUBSYSTEM OF THE HP 3000
4 MULTIPROGRAMMING EXECUTIVE OPERATING SYSTEM
5 (MPE/3000) THAT IS USED TO CREATE AND
6 MANIPULATE ASCII FILES.
7
6 CHARACTERS, STRINGS OF CHARACTERS, OR ENTIRE
9 LINES OF CHARACTERS CAN BE INSERTED, DELETED,
10 REPLACED, MODIFIED, SEARCHED FOR, AND OTHERWISE
11 MANIFUPLATED BY USING EDIT/3000 COMMANDS.
/KEEP EDIT2
EDIT2 ALREADY EXISTS - RESPOND YES TO PURGE OLD AND THEN KEEP
PURGE OLD?Y
* KEEP filename (range)
The KEEP range form, as in the following example, keeps only those lines
specified in range (lines 8 through 11 in the example).
NOTE SET SHORT was used in the next three examples.
/KEEP TEST (8/11)
/TEXT TEST
CLEAR? Y
/LIST ALL
8 CHARACTERS, STRING OF CHARACTERS, OR ENTIRE
9 LINES OF CHARACTERS CAN BE INSERTED, DELETED,
10 REPLACED. MODIFIED, SEARCHED FOR, AND OTHERWISE
11 MANIPULATED BY USING EDIT/3000 COMMANDS.
* KEEP filename, UNNUMBERED
When the KEEP filename, UNNUMBERED form of the KEEP command is used, as
in the following exam- ple, the file can be copied back into the work
file either with a TEXT filename, UNNUMBERED or a TEXT filename command.
Note that EDIT/3000 assigns line numbers to the unnumbered file TEST (as
shown by the LIST ALL command).
/KEEP TEST, UNNUMBERED
PURGE OLD?Y
/TEXT TEST, UNNUMBERED
/LIST ALL
1 CHARACTERS, STRING OF CHARACTERS, OR ENTIRE
2 LINES OF CHARACTERS CAN BE INSERTED, DELETED,
3 REPLACED. MODIFIED, SEARCHED FOR, AND OTHERWISE
4 MANIPULATED BY USING EDIT/3000 COMMANDS.
* SEQUENCING INFORMATION
When the KEEP filename form of the KEEP command is used, EDIT/3000
appends eight bytes to the end of each record for sequencing information.
When the TEXT file is copied back into the WORK file with a TEXT filename
command, these eight bytes are deleted by EDIT/3000; however, if you do
not wish the information contained in the eight bytes to be saved in the
TEXT file, use the KEEP filename, UNNUMBERED form of the KEEP command.
In the next example, the SET RIGHT and SET LENGTH options are set to 52,
then lines 1 through 10 of the WORK file are saved under the filename
TEST. Once EDIT/3000 operation is terminated, the MPE/3000 command:LISTF
TEST,1 shows that the length has been increased by eight bytes to 60
bytes.
:EDITOR
HP 32201A.4.01 EDIT/3000 TUE, JUN 3, 1975, 3:13 PM
/S SHORT;T EDIT3;L 1/10
1 1-2. WHAT IS EDIT/3000?
2
3 EDIT/3000 IS A SUBSYSTEM OF THE HP 3000
4 MULTIPROGRAMMING EXECUTIVE OPERATING SYSTEM
5 (MPE/3000) THAT IS USED TO CREATE AND
6 MANIPULATE ASCII FILES.
7
6 CHARACTERS, STRINGS OF CHARACTERS, OR ENTIRE
9 LINES OF CHARACTERS CAN BE INSERTED, DELETED,
10 REPLACED, MODIFIED, SEARCHED FOR, AND OTHERWISE
/S RIGHT=52, LENGTH=52
/K TEST(1/10)
PURGE OLD?Y
/E
END OF SUBSYSTEM
:LISTF TEST,1
ACCOUNT= GOODWIN GROUP= PUB
FILENAME CODE ------------LOGICAL RECORD----------
SIZE TYPE EOF LIMIT
TEST 60B FA 10 10
^
|
length
* KEEPQ filename
The next example demonstrates the use of the KEEPQ command. In the first
part of the example, the TEXT file EDIT2 is copied into the WORK file and
listed. The VERIFY FILES command shows a WORK file of K18111336 and the
MPE/3000 LISTF command displays the file parameters.
In the second part of the example, the same file is copied into the WORK
file and listed. Then the KEEPQ command is entered. Note that now when
the VERIFY FILES is entered, there is no entry for the WORK file and an
attempt to LIST ALL results in the error message
UNDEFINED TEXT
The MPE/3000 LISTF command shows that EDIT2 now has a filecode of 1050
(an EDIT/3000 KEEPQ file). Such a file can be read only by EDIT/3000 and
can be used for no other purpose (no other EDIT/3000 commands will
execute for such a file. For example, the LIST ALL command would not
execute.)
The last part of the example shows how to use such a file, by entering
the TEXT filename and KEEP filename commands in succession. Now the LIST
ALL command executes.
: EDITOR
HP 32201A.4.01 EDIT/3000 MON, JUN 30, 19975, 1:36 PM
/SET SHORT;TEXT EDIT 2; LIST ALL
1 LINE 1 OF WORK FILE
2 LINE 2 OF WORK FILE
3 LINE 3 OF WORK FILE
4 LINE 4 OF WORK FILE
5 LINE 5 OF WORK FILE
/VERIFY FILES
FILES:
WORK: K1811336
KEEP:
TEXT: EDIT2.PUB.GOOWIN MON, JUN 30, 1975, 1:36 PM
JOIN:
/END
END OF SUBSYSTEM
:LISTF EDIT2,2
ACCOUNT- GOODWIN GROUP- PUB
FILENAME CODE -----------------LOGICAL RECORD---------- ----SPACE---- ACC
SIZE TYPE EOF LIMIT R/B SECTORS #X MX
EDIT2 80B FA 5 5 16 10 1 1 ???
:EDITOR
HP 32201A.4.01 EDIT/3000 MON, JUN 30, 19975, 1:36 PM
/SET SHORT;TEXT EDIT 2; LIST ALL
1 LINE 1 OF WORK FILE
2 LINE 2 OF WORK FILE
3 LINE 3 OF WORK FILE
4 LINE 4 OF WORK FILE
5 LINE 5 OF WORK FILE
/KEEPQ EDIT2
PURGE OLD?Y
/VERIFY FILES
FILES:
WORK:
KEEP: EDIT MON, JUN 30, 19975, 1:36 PM
TEXT: EDIT2.PUB.GOODWIN MON, JUN 30, 19975, 1:36 PM
JOIN:
/LIST ALL
*40*UNDEFINED TEXT
/END
END OF SUBSYSTEM
:LISTF EDIT2,2
ACCOUNT= GOODWIN GROUP- PUB
FILENAME CODE ---------------LOGICAL RECORD---------- ----SPACE---- ACC
SIZE TYPE EOF LIMIT R/B SECTORS #X MX
EDIT2 1050 112B FA 22 2000 9 70 1 16 ???
:EDITOR
HP 32201A.4.01 EDIT/3000 MON, JUN 30, 19975, 1:41 PM
/SET SHORT;TEXT EDIT 2; LIST ALL
1 LINE 1 OF WORK FILE
2 LINE 2 OF WORK FILE
3 LINE 3 OF WORK FILE
4 LINE 4 OF WORK FILE
5 LINE 5 OF WORK FILE
/VERIFY FILES
FILES:
WORK: K1811341
KEEP: EDIT2.PUB.GOODWIN MON, JUN 30, 19975, 1:41 PM
TEXT: EDIT2.PUB.GOODWIN MON, JUN 30, 19975, 1:41 PM
JOIN:
/END
END OF SUBSYSTEM
:
EDIT/3000 monitors whether you make changes to the TEXT file or not.
Thus, when using the TEXT or END command, you are not burdened wit"OK TO
CLEAR?" message unless the file has been altered. The "VERIFY ALL" and
"VERIFY FILES" commands indicate if the WORK file has been altered with
the following message:
WORK FILE HAS BEEN ALTERED
For example,
:EDITOR
HP 32201A.7.01 EDIT/3000 WED, MAY 3, 1978, 1:42 PM
/TEXT KEPFIL, UNN
/V FILES
FILES:
WORK: K1231342
KEEP:
TEXT: KEPFIL.PUB.SHELL WED, MAY 3, 1978, 1:42 PM
JOIN:
/ADD
6 ADDITIONS
7 MORE ADDITIONS
8 ...
/V FILES
FILES:
WORK: K1231342
WORK FILE HAS BEEN ALTERED
KEEP:
TEXT: KEPFIL.PUB.SHELL WED, MAY 3, 1978 1:42 PM
JOIN:
/KEEP KEPFIL,UNN
KEPFIL ALREADY EXISTS - RESPOND YES TO PURGE OLD AND THEN KEEP
PURGE OLD?Y
/V FILES
FILES:
WORK: K1231342
KEEP: KEPFIL.PUB.SHELL WED, MAY 3, 1978 1;48 PM
TEXT: KEPFIL.PUB.SHELL WED, MAY 3, 1978 1:42 PM
JOIN:
/END
END OF SUBSYSTEM
:
* KEEPING THE WORK FILE CONTENTS ON A CARD PUNCH DEVICE
In the next example, a FORTRAN/3000 source program, which has been copied
into the WORK file with a TEXT command, is sent to a card punch device.
To prevent the line numbers from being punched on the cards, the KEEP
filename, UNNUMBERED form of the KEEP command is used.
: FILE OUT;DEV=PUNCH
: EDITOR
HP 32201A.4.01 EDIT/3000 MON, JUN 30, 1975, 2:45 PM
/S SHORT;TEXT FTRAN33
/LIST ALL
1 PROGRAM INTRINSICS
2 C
3 C FOPEN, FREAD, AND FCLOSE EXAMPLE
4 C
5 100 FORMAT(T2,S)
6 CHARACTER*72 BUFFER, FILENAME*16
7 LOGICAL LBUFFER(36)
8 INTEGER FILENUMBER,FOPEN,FREAD
9 EQUIVALENCE (LBUFFER,BUFFER)
10 FILENAME="MAILLIST"
11 C
12 C THE NEXT STATEMENT CALLS THE FOPEN INTRINSIC
13 C
14 FILENUMBER-FORPEN(FILENAME,\1\,\%105\,O,O,O,O,O,O,\0.0\,
15 #0,0,0,\%16000\,
16 IF(.CC.)40,10,40
17 10 DISPLAY "FILENUMBER = ",FILENUMBER
18 C
19 C THE NEXT STATEMENT CALLS THE FREAD INTRINSIC
20 C
21 20 N=FREAD(/FILENUMBER\,LBUFFER,\36\)
22 IF(.CC.)50,30, 60
23 30 WRITE(6,100)BUFFER[1:19]
24 GOTO 20
25 40 DISPLAY "FOPEN FAILURE"
26 STOP
27 50 DISPLAY "FREAD ERROR"
28 STOP
29 C
30 C THE NEXT STATEMENT CALLS THE FCLOSE INTRINSIC
31 C
32 60 CALL FLCOSE(\FILENUMBER\,\1\.0\)
33 IF(.CC.)70,80,70
34 70 DISPLAY "FCLOSE FAILURE"
35 STOP
36 80 DISPLAY "FILE CLOSED SUCCESSFULLY"
37 STOP
38 END
/KEEP *OUT,UNN
* USER LABELS
If the file is kept with a name that already exists, the old file is
purged, but the user labels are not lost. They are passed on to the new
file.
MPE/iX 5.0 Documentation