[U2] Is there a UniData equivalent to the UV SEARCH command?
--- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Is there a UniData equivalent to the UV SEARCH command?
ESEARCH --- Keith W. Roberts [EMAIL PROTECTED] wrote: --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ ...a livable wage is a moral value. Affordable health care is a moral value. A decent education is a moral value. A common sense foreign policy is a moral value. A healthy environment is a moral value. The feeling of community that comes from full participation in our democracy is a moral value. It is a moral value to make sure that we do not saddle our children and grandchildren with our debt. -Howard Dean __ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Is there a UniData equivalent to the UV SEARCH command?
ESEARCH Wally Terhune Manager - U2 Advanced Client Support IBM Information Management Tel: 303.294.4866 -- New Number 9/24/05: 303.773.7969 Fax: 303.294.4832 -- New Fax 9/24/05:303.773.5915 [EMAIL PROTECTED] Check out the details of the special 3 day SMB offer available for U2 customers and Partners to attend the IBM DB2 Information Management Technical Conference on September 11-16, 2005 in Orlando, Florida. See the complete listing of exciting U2 technical sessions that will be offered. Attend several of the no-charge U2 pre-conference tutorials on Sunday the 11th. Sign up for no-charge U2 certification exams that are taking place throughout the conference. Attend one of our brand new Usability Lab sessions on External Database Access (EDA) or U2 Web Builder and offer your valuable feedback on product design and functionality. http://www.ibm.com/software/data/u2/offers --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Is there a UniData equivalent to the UV SEARCH command?
I wrote a program for searching through any file. It should work on both U2 DBs, though I'm not a whiz at UD and don't have a UD system available for testing, but I've pasted the source below my sig. -- Karl Pearson IT Director, ATS Industrial Supply, Inc. http://www.atsindustrial.com Toll-free: 800-789-9300 x29 Direct2Desk: 801-978-4429 Facsimile: 801-972-3888 -- !(FINDALL) - Search any file for input string ! Karl Pearson ! 02/09/2005 $include INC.KLP ;! also pasted at end of FINDALL VARS = trim(@sentence) TLRT = dcount(VARS,' ') FL = field(VARS,' ',TLRT) SRCH = field(VARS,' ',2,TLRT-2) execute 'RUN BP SET.DIMENSIONS'; ! Set terminal Width Height open EMP,'AR.CTL' to AR.CTL else stopm 'No AR.CTL File.' read REC from AR.CTL,FINDALL then USRNM = REC1 stopm USRNM: is running FINDALL. Try again. end else write @LOGNAME on AR.CTL,FINDALL end Y = 1 ; KEY = EMP ; CNT = 0 ; PCNT = 0 BTM = @crthigh SPOT = @(0,BTM-4) SPTT = @(0,BTM-3) print @(-1) SRCH: if TLRT = 1 then print SPOT:' Enter Search String or E=End : ':CLSLN: input SRCH if SRCH = EMP then print 'Nothing Entered...' go SRCH end if upcase(SRCH) = 'E' or upcase(SRCH) = 'Q' then go OUTT print SPOT:' Enter FILE to Search for ':SRCH:' : ':CLSLN: input FL if upcase(FL) = 'E' or upcase(FL) = 'Q' then go OUTT if FL = EMP or FL = 0 then print 'No File Entered...' go SRCH end end open EMP,'FNDLST' TO PL else gosub CLEANIT stopm 'No FNDLST File' end open EMP,FL to SRCHFL else gosub CLEANIT stopm 'No ':FL:' File' end read LOCKED from PL,'LOCKED' then print 'Process being run by ':LOCKED1 print 'If you continue, you will clear FNDLST from them' print 'Continue ENTER=No/Yes : ': input CONTI ; CONTI = upcase(CONTI) if CONTI = EMP or CONTI = 'N' then go OUTT end execute 'CLEAR.FILE FNDLST' CAPTURING OUTPUTLN writev @logname on PL,'LOCKED',1 select SRCHFL PCNT = 1 ST: readnext KEY else go OUTT inputif DOODLY,1: then go OUTT read REC from SRCHFL,KEY else print 'UNABLE TO OPEN ':KEY:'' go ST end C = 1 print SPOT:'Itm#: ':PCNT:' ':KEY:CLSLN: print SPTT:'Finding: ':SRCH:' in ':FL:CLSLN: PCNT += 1 NXT: inputif DOODLY,1: then go OUTT findstr SRCH in REC setting POS else go ST C += 1 if POS then if Y (BTM - 6) then Y = 2 CNT += 1 print @(0,Y):CNTR#4:' ':KEY:' on Line ':POS:CLSLN:@(0,Y+1):CLSLN: write POS ON PL,KEY Y += 1 go ST end go NXT OUTT: print SPOT:CLSLN:SPTT:CLSLN: print SPTT:BCKSPC: delete PL,'LOCKED' if CNT then print SPOT:PCNT: Searched. To Edit/Save-List Found Files, Execute::CLSLN print SELECT FNDLST print ED FL/SAVE-LIST SLNAME end else print SPOT:Searched :PCNT: items in :FL:. String :SRCH:. Nothing Found...:CLSLN end CLEANIT: delete AR.CTL,FINDALL return end INC.KLP ! #INC to be used as an $INCLUDE. ! Please add desired items. Please comment. PROMPT '' ; DONE = '' CLR = @(-1); ! Clears the screen CLS = CLR HOME = @(-2) ; ! 'Homes' cursor CLSEND = @(-3) ; ! Clears = screen end CLSLN = @(-4) ; ! Clears = line end CRSRBLNK = @(-5) ; ! Cursor blink on CRSRNOBLNK = @(-6) ; ! Cursor blink off PROT = @(-7) ; ! Protect mode on NOPROT = @(-8) ; ! Protect mode off BCKSPC = @(-9) ; ! Backup one column UPLN = @(-10) ; ! Backup one row NORM = @(-12):@(-14):@(-16):@(-59) ; ! Undo Text Attributes HALF = @(-11) ; ! Half intensity on HALFOFF = @(-12) ; ! Half intensity off REV = @(-13) ; ! reverse video on REVOFF = @(-14); ! Reverse video off UNDRLN = @(-15); ! Underline on UNDRLNOFF = @(-16) ; ! Underline off BOLD = @(-58) ; ! Bold on BOLDOFF = @(-59) ; ! Bold off AUXON = @(-23) ; ! Turn aux printer on AUXOFF = @(-24); ! Turn aux printer off TRNSAUXON = @(-25) ; ! Transparent Aux print on TRNSAUXOFF = @(-26); ! Transparent Aux print off PRNTSCR = @(-28) ; ! Print Screen = aux printer COL80 = @(-29) ; ! Set 80 column mode COL132 = @(-30); ! Set 132 column mode CRSRON = @(-31)
RE: [U2] Is there a UniData equivalent to the UV SEARCH command?
Hey as long as we're sharing code, here's something I wrote in PICK that does AND logic searching. So you can find all the lines with, for example, WRITE and AR.REC on the same line. Many times I find myself having to search through code for things like INVOICE and what I'm really looking may be where another program might be calling the INVOICE program, but end up with a million hits of the literal 'INVOICE' being printed, etc., and this way I can tailor the search to look for PERFORM and INVOICE on the same line and bingo, I get just what I need! To convert this to Unidata would require the INDEX command to be changed to FINDSTR, POINTER-FILE to SAVEDLISTS, and modify the ID for the list to have 000 (three zeros) appended to the end. Oh, and the LOCATE is a tad different as well. (I used the name MULTISCAN because I liked the movie 'The Fifth Element' and it just cracks me up to hear Multipass. Guess you had to be there ;-) Allen www.tortillafc.com * MULTISCAN - Find records based on AND logic * LINES.PER.PAGE = 57 LIST.NAME = LIST.LIST = PRINT 'Use ITEM1~ITEM2 type of entry for boolean AND search' PRINT 'This will also search for exact names if that option is selected' PRINT Enter file name : :;INPUT FILENAME PRINT 'Look for : ':;INPUT LOOK.FOR PRINT 'Enter List Name: ':;INPUT LIST.NAME PRINT 'Exact name match? (Y/N) : ':;INPUT EXACT.MATCH OPEN '', FILENAME TO FHAND ELSE PRINT FILENAME:' not found' ;STOP OPEN '', 'POINTER-FILE' TO PFELSE PRINT 'POINTER-FILE not found';STOP MSG = 'SELECT ':FILENAME EXECUTE MSG LOOK.FOR = CHANGE(LOOK.FOR,'~',@AM) ANDY.COUNT = DCOUNT(LOOK.FOR,@AM) * SELECTED = @SYSTEM.RETURN.CODE * CALL PRINTER.ON(,) LOOP READNEXT ID ELSE EXIT READ REC FROM FHAND, ID THEN LNS = DCOUNT(REC,@AM) ADD.IT = 0 FOR I = 1 TO LNS DATA.LINE = REC1 DEL REC1 IF EXACT.MATCH = 'Y' THEN EXACT.LINE = CHANGE(DATA.LINE,' ',@AM) EXACT.LINE = CHANGE(EXACT.LINE,',@AM) EXACT.LINE = CHANGE(EXACT.LINE,',',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'(',@AM) EXACT.LINE = CHANGE(EXACT.LINE,')',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'=',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'+',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'-',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'/',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'*',@AM) END FOUND.COUNT = 0 FOR J = 1 TO ANDY.COUNT POS = 0 SEARCH.VALUE = LOOK.FORJ POS = INDEX(DATA.LINE,SEARCH.VALUE,1) IF POS THEN IF EXACT.MATCH = 'Y' THEN LOCATE SEARCH.VALUE IN EXACT.LINE SETTING GOT.IT ELSE GOT.IT = 0 IF GOT.IT THEN FOUND.COUNT+=1 END END ELSE FOUND.COUNT+=1 END END IF FOUND.COUNT = ANDY.COUNT THEN PRINT ID PRINT 'Line: ':I:' ':DATA.LINE PRINT ADD.IT = 1 END NEXT J NEXT I IF LIST.NAME THEN IF ADD.IT THEN LIST.LIST-1 = ID END END END REPEAT * CALL PRINTER.OFF(,) * CALL PRINTER.CLOSE(,) PRINT 'DONE' IF LIST.NAME THEN IF LIST.LIST THEN WRITEU LIST.LIST ON PF, LIST.NAME END END STOP END -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of [EMAIL PROTECTED] Sent: Friday, September 09, 2005 13:15 To: u2-users@listserver.u2ug.org Subject: Re: [U2] Is there a UniData equivalent to the UV SEARCH command? I wrote a program for searching through any file. It should work on both U2 DBs, though I'm not a whiz at UD and don't have a UD system available for testing, but I've pasted the source below my sig. -- Karl Pearson IT Director, ATS Industrial Supply, Inc. http://www.atsindustrial.com Toll-free: 800-789-9300 x29 Direct2Desk: 801-978-4429 Facsimile: 801-972-3888 -- --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Is there a UniData equivalent to the UV SEARCH command?
Thanks to both of you. I'll look them over and adapt as needed. :) -Keith Roberts P.S. I haven't been on this list in about 4 years, I guess ... and I was known as Keith Aaron then. So, Hi, y'all! Good to be back. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Friday, September 09, 2005 2:05 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Is there a UniData equivalent to the UV SEARCH command? Hey as long as we're sharing code, here's something I wrote in PICK that does AND logic searching. So you can find all the lines with, for example, WRITE and AR.REC on the same line. Many times I find myself having to search through code for things like INVOICE and what I'm really looking may be where another program might be calling the INVOICE program, but end up with a million hits of the literal 'INVOICE' being printed, etc., and this way I can tailor the search to look for PERFORM and INVOICE on the same line and bingo, I get just what I need! To convert this to Unidata would require the INDEX command to be changed to FINDSTR, POINTER-FILE to SAVEDLISTS, and modify the ID for the list to have 000 (three zeros) appended to the end. Oh, and the LOCATE is a tad different as well. (I used the name MULTISCAN because I liked the movie 'The Fifth Element' and it just cracks me up to hear Multipass. Guess you had to be there ;-) Allen www.tortillafc.com * MULTISCAN - Find records based on AND logic * LINES.PER.PAGE = 57 LIST.NAME = LIST.LIST = PRINT 'Use ITEM1~ITEM2 type of entry for boolean AND search' PRINT 'This will also search for exact names if that option is selected' PRINT Enter file name : :;INPUT FILENAME PRINT 'Look for : ':;INPUT LOOK.FOR PRINT 'Enter List Name: ':;INPUT LIST.NAME PRINT 'Exact name match? (Y/N) : ':;INPUT EXACT.MATCH OPEN '', FILENAME TO FHAND ELSE PRINT FILENAME:' not found' ;STOP OPEN '', 'POINTER-FILE' TO PFELSE PRINT 'POINTER-FILE not found';STOP MSG = 'SELECT ':FILENAME EXECUTE MSG LOOK.FOR = CHANGE(LOOK.FOR,'~',@AM) ANDY.COUNT = DCOUNT(LOOK.FOR,@AM) * SELECTED = @SYSTEM.RETURN.CODE * CALL PRINTER.ON(,) LOOP READNEXT ID ELSE EXIT READ REC FROM FHAND, ID THEN LNS = DCOUNT(REC,@AM) ADD.IT = 0 FOR I = 1 TO LNS DATA.LINE = REC1 DEL REC1 IF EXACT.MATCH = 'Y' THEN EXACT.LINE = CHANGE(DATA.LINE,' ',@AM) EXACT.LINE = CHANGE(EXACT.LINE,',@AM) EXACT.LINE = CHANGE(EXACT.LINE,',',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'(',@AM) EXACT.LINE = CHANGE(EXACT.LINE,')',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'=',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'+',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'-',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'/',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'*',@AM) END FOUND.COUNT = 0 FOR J = 1 TO ANDY.COUNT POS = 0 SEARCH.VALUE = LOOK.FORJ POS = INDEX(DATA.LINE,SEARCH.VALUE,1) IF POS THEN IF EXACT.MATCH = 'Y' THEN LOCATE SEARCH.VALUE IN EXACT.LINE SETTING GOT.IT ELSE GOT.IT = 0 IF GOT.IT THEN FOUND.COUNT+=1 END END ELSE FOUND.COUNT+=1 END END IF FOUND.COUNT = ANDY.COUNT THEN PRINT ID PRINT 'Line: ':I:' ':DATA.LINE PRINT ADD.IT = 1 END NEXT J NEXT I IF LIST.NAME THEN IF ADD.IT THEN LIST.LIST-1 = ID END END END REPEAT * CALL PRINTER.OFF(,) * CALL PRINTER.CLOSE(,) PRINT 'DONE' IF LIST.NAME THEN IF LIST.LIST THEN WRITEU LIST.LIST ON PF, LIST.NAME END END STOP END -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of [EMAIL PROTECTED] Sent: Friday, September 09, 2005 13:15 To: u2-users@listserver.u2ug.org Subject: Re: [U2] Is there a UniData equivalent to the UV SEARCH command? I wrote a program for searching through any file. It should work on both U2 DBs, though I'm not a whiz at UD and don't have a UD system available for testing, but I've pasted the source below my sig. -- Karl Pearson IT Director, ATS Industrial Supply, Inc. http://www.atsindustrial.com Toll-free: 800-789-9300 x29 Direct2Desk: 801-978-4429 Facsimile: 801-972-3888 -- --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Is there a UniData equivalent to the UV SEARCH command?
Aha! Thank you exceedingly! I couldn't imagine that UD wouldn't have this capability natively, but saw nothing like it in HELP UNIDATA. Who knew it would be under UNIQUERY? And, of course, I completely forgot you could do HELP -K keyword in UD. It's a strange world after being so steeped in UV. :) Thanks again, -Keith -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jim Bullock Sent: Friday, September 09, 2005 11:34 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Is there a UniData equivalent to the UV SEARCH command? ESEARCH --- Keith W. Roberts [EMAIL PROTECTED] wrote: --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ ...a livable wage is a moral value. Affordable health care is a moral value. A decent education is a moral value. A common sense foreign policy is a moral value. A healthy environment is a moral value. The feeling of community that comes from full participation in our democracy is a moral value. It is a moral value to make sure that we do not saddle our children and grandchildren with our debt. -Howard Dean __ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Is there a UniData equivalent to the UV SEARCH command?
I forgot to mention that it also does exact matching as well as the AND logic. So if your looking for INV you don't get INVOICES just INV. HAVE FUN! Allen -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Keith W. Roberts Sent: Friday, September 09, 2005 15:41 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Is there a UniData equivalent to the UV SEARCH command? Thanks to both of you. I'll look them over and adapt as needed. :) -Keith Roberts P.S. I haven't been on this list in about 4 years, I guess ... and I was known as Keith Aaron then. So, Hi, y'all! Good to be back. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Friday, September 09, 2005 2:05 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Is there a UniData equivalent to the UV SEARCH command? Hey as long as we're sharing code, here's something I wrote in PICK that does AND logic searching. So you can find all the lines with, for example, WRITE and AR.REC on the same line. Many times I find myself having to search through code for things like INVOICE and what I'm really looking may be where another program might be calling the INVOICE program, but end up with a million hits of the literal 'INVOICE' being printed, etc., and this way I can tailor the search to look for PERFORM and INVOICE on the same line and bingo, I get just what I need! To convert this to Unidata would require the INDEX command to be changed to FINDSTR, POINTER-FILE to SAVEDLISTS, and modify the ID for the list to have 000 (three zeros) appended to the end. Oh, and the LOCATE is a tad different as well. (I used the name MULTISCAN because I liked the movie 'The Fifth Element' and it just cracks me up to hear Multipass. Guess you had to be there ;-) Allen www.tortillafc.com * MULTISCAN - Find records based on AND logic * LINES.PER.PAGE = 57 LIST.NAME = LIST.LIST = PRINT 'Use ITEM1~ITEM2 type of entry for boolean AND search' PRINT 'This will also search for exact names if that option is selected' PRINT Enter file name : :;INPUT FILENAME PRINT 'Look for : ':;INPUT LOOK.FOR PRINT 'Enter List Name: ':;INPUT LIST.NAME PRINT 'Exact name match? (Y/N) : ':;INPUT EXACT.MATCH OPEN '', FILENAME TO FHAND ELSE PRINT FILENAME:' not found' ;STOP OPEN '', 'POINTER-FILE' TO PFELSE PRINT 'POINTER-FILE not found';STOP MSG = 'SELECT ':FILENAME EXECUTE MSG LOOK.FOR = CHANGE(LOOK.FOR,'~',@AM) ANDY.COUNT = DCOUNT(LOOK.FOR,@AM) * SELECTED = @SYSTEM.RETURN.CODE * CALL PRINTER.ON(,) LOOP READNEXT ID ELSE EXIT READ REC FROM FHAND, ID THEN LNS = DCOUNT(REC,@AM) ADD.IT = 0 FOR I = 1 TO LNS DATA.LINE = REC1 DEL REC1 IF EXACT.MATCH = 'Y' THEN EXACT.LINE = CHANGE(DATA.LINE,' ',@AM) EXACT.LINE = CHANGE(EXACT.LINE,',@AM) EXACT.LINE = CHANGE(EXACT.LINE,',',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'(',@AM) EXACT.LINE = CHANGE(EXACT.LINE,')',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'=',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'+',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'-',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'/',@AM) EXACT.LINE = CHANGE(EXACT.LINE,'*',@AM) END FOUND.COUNT = 0 FOR J = 1 TO ANDY.COUNT POS = 0 SEARCH.VALUE = LOOK.FORJ POS = INDEX(DATA.LINE,SEARCH.VALUE,1) IF POS THEN IF EXACT.MATCH = 'Y' THEN LOCATE SEARCH.VALUE IN EXACT.LINE SETTING GOT.IT ELSE GOT.IT = 0 IF GOT.IT THEN FOUND.COUNT+=1 END END ELSE FOUND.COUNT+=1 END END IF FOUND.COUNT = ANDY.COUNT THEN PRINT ID PRINT 'Line: ':I:' ':DATA.LINE PRINT ADD.IT = 1 END NEXT J NEXT I IF LIST.NAME THEN IF ADD.IT THEN LIST.LIST-1 = ID END END END REPEAT * CALL PRINTER.OFF(,) * CALL PRINTER.CLOSE(,) PRINT 'DONE' IF LIST.NAME THEN IF LIST.LIST THEN WRITEU LIST.LIST ON PF, LIST.NAME END END STOP END -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of [EMAIL PROTECTED] Sent: Friday, September 09, 2005 13:15 To: u2-users@listserver.u2ug.org Subject: Re: [U2] Is there a UniData equivalent to the UV SEARCH command? I wrote a program for searching through any file. It should work on both U2 DBs, though I'm not a whiz at UD and don't have a UD system available for testing, but I've pasted the source below my sig. -- Karl Pearson IT Director, ATS Industrial Supply, Inc.