You are going to end up with key in field 1 with your code
Your assumptions in PRINT statements had also better let people know that
column # corresponds to field number (with caveat from above)
Would also suggest that
CONVERT TAB.KEY to @FM IN T.ROW,
Followed by a REMOVE for the key may be more efficient
Ross Ferris
Stamina Software
Visage > Better by Design!
-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson
Sent: Tuesday, 13 December 2011 4:36 PM
To: u2-users@listserver.u2ug.org
Subject: [U2] TAB.TO.UNIVERSE
0001 *
0002 * Writen Dec 2011 by Will Johnson
0003 * Input tab delimited file, output universe file
0004 * BATCH mode does not ask for input at error messages, so it's
0005 *appropriate for PHantoms or any other COMO generating job
0006 * TEST mode does not WRITE, useful for debugging logic
0007 *
0008 EQUATE FALSE TO 0, TRUE TO 1
0009 EQUATE TAB.KEY TO CHAR(9)
0010 ERROR = ''
0011 GOSUB GET.PARAMETERS
0012 GOSUB OPEN.FILES
0013 IF ERROR = '' THEN
0014 GOSUB READ.AND.PROCESS
0015 END ELSE
0016 CRT ERROR:
0017 IF MODE = "BATCH" THEN CRT ELSE
0018 CRT " Hit enter ": ; INPUT CONT,1_
0019 END
0020 END
0021 STOP
0022 *
0023 GET.PARAMETERS:
0024 CRT "THIS PROGRAM WILL PROMPT FOR A TAB-DELIMITED FILE AS INPUT"
0025 CRT "AND A UNIVERSE FILE TO POPULATE WITH THE DATA"
0026 CRT
0027 CRT "WARNING: THIS PROGRAM ASSUMES THE PRIMARY KEY":
0028 CRT " IS IN COLUMN ONE!"
0029 CRT
0030 CRT "IS THIS WHAT YOU WANT TO DO (Y/N) ": ; INPUT CONT,1_
0031 IF CONT # "Y" THEN CRT "USER ABORT" ; STOP
0032 *
0033 CRT "MODE (BATCH/TEST/LIVE) ": ; INPUT MODE
0034 CRT "MODE IS '":MODE:"'"
0035 CRT "PATH OF TAB-DELIMITED FILE ": ; INPUT TAB.PATH
0036 CRT "TAB.PATH IS '":TAB.PATH:"'"
0037 CRT "UNIVERSE FILE NAME ": ; INPUT N.FILE
0038 CRT "UNIVERSE FILE NAME IS '":N.FILE:"'"
0039 CRT "DATE-STAMP KEYS (Y/N) ": ; INPUT DATE.STAMP
0040 CRT "TIMEDATE-STAMP KEYS IS '":DATE.STAMP:"'"
0041 IF DATE.STAMP = 'Y' THEN STAMP = DATE():'*':TIME()
0042 RETURN
0043 *
0044 OPEN.FILES:
0045 OPENSEQ TAB.PATH TO SOURCE.FILE THEN
0045AIF DATE.STAMP = 'Y' THEN
0045B OPEN 'DICT',N.FILE TO DF.FILE THEN
0045C WRITE STAMP ON DF.FILE,'LAST.RUN'
0045D END ELSE ERROR = 'Cannot open file "DICT ':N.FILE:'"'
0045EEND
0046 OPEN N.FILE TO F.FILE ELSE
0047 ERROR = 'Cannot open file "':N.FILE:'"'
0048 END
0049 END ELSE ERROR = 'Cannot open file "':TAB.PATH:'"'
0050 RETURN
0051 *
0052 READ.AND.PROCESS:
0053 DONE = FALSE ; CNT = 0
0054 LOOP
0055 READSEQ T.ROW FROM SOURCE.FILE ELSE DONE = TRUE
0056 UNTIL DONE DO
0057 CNT += 1 ; R.FILE = '' ; S.ROW = DCOUNT(T.ROW,TAB.KEY)
0058 FOR I.ROW = 1 TO S.ROW
0059 R.FILE = FIELD(T.ROW,TAB.KEY,I.ROW)
0060 NEXT I.ROW
0061 *ASSUME PRIMARY KEY IN FIELD ONE
0062 K.FILE = R.FILE<1>
0063 IF DATE.STAMP = 'Y' THEN K.FILE := "*":STAMP
0064 IF MODE # "TEST" THEN WRITE R.FILE ON F.FILE,K.FILE
0065 REPEAT
0066 RETURN
0067 *
0068END
-Original Message-
From: Wjhonson
To: WJhonson
Sent: Mon, Dec 12, 2011 1:59 pm
Subject: TAB.TO.UNIVERSE
0001 *
0002 * Writen Dec 2011 by Will Johnson
0003 *
0004 * BATCH mode does not ask for input at error messages, so it's
0005 *appropriate for PHantoms or any other COMO generating job
0006 * TEST mode does not WRITE
0007 *
0008 EQUATE FALSE TO 0, TRUE TO 1
0009 EQUATE TAB.KEY TO CHAR(9)
0010 ERROR = ''
0011 GOSUB GET.PARAMETERS
0012 GOSUB OPEN.FILES
0013 IF ERROR = '' THEN
0014 GOSUB READ.AND.PROCESS
0015 END ELSE
0016 CRT ERROR:
0017 IF MODE = "BATCH" THEN CRT ELSE
0018 CRT " Hit enter ": ; INPUT CONT,1_
0019 END
0020 END
0021 STOP
0022 *
0023 GET.PARAMETERS:
0024 CRT "THIS PROGRAM WILL PROMPT FOR A TAB-DELIMITED FILE AS INPUT"
0025 CRT "AND A UNIVERSE FILE TO POPULATE WITH THE DATA"
0026 CRT
0027 CRT "WARNING: THIS PROGRAM ASSUMES THE PRIMARY KEY":
0028 CRT " IS IN COLUMN ONE!"
0029 CRT
0030 CRT "IS THIS WHAT YOU WANT TO DO (Y/N) ": ; INPUT CONT,1_
0031 IF CONT # "Y" THEN CRT "USER ABORT" ; STOP
0032 *
0033 CRT "MODE (BATCH/TEST/LIVE) ": ; INPUT MODE
0034 CRT "MODE IS '":MODE:"'"
0035 CRT "PATH OF TAB-DELIMITED FILE ": ; INPUT TAB.PATH
0036 CRT "TAB.PATH IS '":TAB.PATH:"'"
0037 CRT "UNIVERSE FILE NAME ": ; INPUT N.FILE
0038 CRT "UNIVERSE FILE NAME IS '":N.FI