home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
database
/
dbutil.zip
/
COPYFLD.CMD
next >
Wrap
OS/2 REXX Batch file
|
1987-02-14
|
4KB
|
130 lines
* COPYFLD.CMD
* Copyright 1983 by Kenneth Eagle
* 2304 Rockwell Road (302) 475-2763
* Wilmington, DE. 19810
* This program is contributed to the public domain with the
* restriction that it may not be used for commercial purposes
* without written permission from the author.
*
? "A dBASEII program to copy field(s) from one file to another"
? "Both files must contain a common 'KEY FIELD'."
? "Both files must be in order of (or indexed on) 'KEYFIELD'."
? " (the program will do this on a temporary basis if you like)"
? "FROM file must have a KEYFIELD entry for every one in the TO file."
? "As presently programmed, the TO file must already be structured"
? "with the field to be copied into already created (filled or empty)"
?
ACCEPT "Input the name of the file you want to copy from " TO FROMFILE
?
ACCEPT "Input the name of the file you want to copy to " TO TOFILE
?
ACCEPT "Input the name of the KEY (common) field " TO KEYFIELD
?
? "Input the name of the field(s) to be copied from &FROMFILE"
? " ( e.g. NAME or LASTNAME-','-FIRSTNAME )"
ACCEPT TO FROMFIELD
?
? "Input the name of the field in &TOFILE to be filled"
? " ( Must already exist. - Default is &FROMFIELD )"
ACCEPT TO TOFIELD
SET TALK OFF
IF TOFIELD = " "
STORE FROMFIELD TO TOFIELD
ENDIF
STORE "N" TO ANSWER1 ,ANSWER2
STORE "Y" TO ANSWER3
SELECT SECONDARY
?
? "Are you SURE that &FROMFILE is in order of &KEYFIELD ?"
? " (Answer Y for yes or N for no)"
WAIT TO ANSWER1
STORE !(ANSWER1) TO ANSWER1
USE &FROMFILE
IF ANSWER1 <> "Y"
? "Temporarily indexing &FROMFILE on &KEYFIELD to TEMP#1.NDX"
? " (TEMP#1.NDX normally deleted at end of program)"
INDEX ON &KEYFIELD TO TEMP#1
? CHR(7)
ENDIF
GOTO TOP
SELECT PRIMARY
?
? "Are you SURE that &TOFILE is in order of &KEYFIELD ?"
? " (Answer Y for yes or N for no)"
WAIT TO ANSWER2
STORE !(ANSWER2) TO ANSWER2
USE &TOFILE
IF ANSWER2 <> "Y"
? "Temporarily indexing &TOFILE on &KEYFIELD to TEMP#2.NDX"
? " (TEMP#2.NDX normally deleted at end of program)"
INDEX ON &KEYFIELD TO TEMP#2
? CHR(7)
ENDIF
?
? "Do you want a display on the screen as the program runs?"
? " (Answer Y for yes or N for no)"
WAIT TO ANSWER3A
IF ANSWER3A <> " "
STORE !(ANSWER3A) TO ANSWER3
ENDIF
?
GOTO TOP
? "Program is running"
* ------- LOOP SECTION ---------------------------------------
DO WHILE .NOT. EOF
SELECT SECONDARY
STORE &KEYFIELD TO SKEYFIELD
STORE &FROMFIELD TO SFROMFIELD
SELECT PRIMARY
DO WHILE &KEYFIELD <> SKEYFIELD
IF ( SKEYFIELD > &KEYFIELD ) .OR. EOF
* ---- Keyfield in TO file not in FROM file -------
? KEYFIELD,&KEYFIELD," NOT FOUND"
* (Next 4 lines necessary to 'free' .NDX files)
SELECT SECONDARY
USE
SELECT PRIMARY
USE &TOFILE
IF ANSWER1 <> "Y"
DELETE FILE TEMP#1.NDX
ENDIF
IF ANSWER2 <> "Y"
DELETE FILE TEMP#2.NDX
ENDIF
SET TALK ON
? CHR(7),"PROGRAM ABORTED !"
RETURN
ENDIF
* ---- Pick up FROMFIELD data -------------------------
SELECT SECONDARY
SKIP
STORE &KEYFIELD TO SKEYFIELD
STORE &FROMFIELD TO SFROMFIELD
SELECT PRIMARY
LOOP
ENDDO
* ---- Match found. Transfer data -----------------------------
REPLACE &TOFIELD WITH SFROMFIELD
IF ANSWER3 = "Y"
? #,&KEYFIELD, &TOFIELD
ENDIF
* ---- Go to next record in TO file ---------------------------
SKIP
LOOP
ENDDO
* ---- WRAPUP ---------------------------------
* (Next 4 lines necessary to 'free' .NDX files)
SELECT SECONDARY
USE
SELECT PRIMARY
USE &TOFILE
IF ANSWER1 <> "Y"
DELETE FILE TEMP#1.NDX
ENDIF
IF ANSWER2 <> "Y"
DELETE FILE TEMP#2.NDX
ENDIF
SET TALK ON
? CHR(7),"Program is done."
RETURN