FFT.BP 'WLISTU' BASIC 77 lines  Level: 3
0001 *
0002 * Writen Aug 2012 by Will Johnson
0003 * This routine sorts the LISTU table by date and then by time
0004 * Builds a multi-sub-valued table, so the times get sorted right
0005 * Then swaps the SVMs for VMs so it becomes a regular table
0006 * Then it also allows you to resort it by PID
0007 *
0008       EQUATE FALSE TO 0, TRUE TO 1
0009       TODAY = DATE()
0010       THIS.YEAR = OCONV(TODAY,'DY')
0011       SWITCH = "DATE" ; EXIT.PROGRAM = FALSE
0012       LOOP
0013          EXECUTE "LISTU", OUT > RESULTS
0014          SELECTV RESULTS TO L.RESULTS
0015          DONE = FALSE ; CNT = 0 ; HEADERS = '' ; TABLE = ''
0016          LOOP
0017             READNEXT LINE FROM L.RESULTS ELSE DONE = TRUE
0018          UNTIL DONE DO
0019             CNT += 1
0020 * Below three lines for debugging only
0021             PRINT CNT"R%2":' ':LINE ; PRINT SPACE(3):
0022             FOR J = 1 TO 7 ; PRINT SPACE(9):J: ; NEXT J
0023             PRINT ; PRINT SPACE(3):STR('1234567890',7)
0024 *
0025             T.PID = LINE[16,5]
0026             T.DATE = LINE[62,6]:' ':THIS.YEAR
0027             T.TIME = LINE[69,5]
0028             IF SWITCH = "DATE" THEN GOSUB BY.DATE.AND.TIME
0029             IF SWITCH = "PID" THEN GOSUB BY.PID
0030          REPEAT
0031          TABLE<1> = HEADERS:@VM:TABLE<1>
0032          TABLE = CONVERT(@SVM,@VM,TABLE)
0033 *
0034          S.TABLE = DCOUNT(TABLE<1>,@VM)
0035          FOR I.TABLE = 1 TO S.TABLE
0036             PRINT I.TABLE'R%2':' ':TABLE<1,I.TABLE>
0037          NEXT I.TABLE
0038          DISPLAY "SORT BY (D)ATE, (P)ID, OR (Q)UIT ":
0039          INPUT ANYTHING
0040          BEGIN CASE
0041             CASE ANYTHING = 'Q' ; EXIT.PROGRAM = TRUE
0042             CASE ANYTHING = 'P' ; SWITCH = 'PID'
0043             CASE ANYTHING = 'D' ; SWITCH = 'DATE'
0044          END CASE
0045       UNTIL EXIT.PROGRAM DO
0046       REPEAT
0047       STOP
0048 *
0049 BY.DATE.AND.TIME:
0050       I.DATE = ICONV(T.DATE,'D')
0051       I.TIME = ICONV(T.TIME,'MT')
0052       IF STATUS() THEN
0053          HEADERS<1,-1> = LINE
0054       END ELSE
0055          LOCATE I.DATE IN TABLE<2,1> BY 'AR' SETTING W.DATE ELSE
0056             TABLE = INSERT(TABLE,1,W.DATE;'')
0057             TABLE = INSERT(TABLE,2,W.DATE;I.DATE)
0058             TABLE = INSERT(TABLE,3,W.DATE;'')
0059          END
0060          LOCATE I.TIME IN TABLE<3,W.DATE,1> BY 'AR' SETTING W.TIME ELSE 
NULL
0061          TABLE = INSERT(TABLE,1,W.DATE,W.TIME;LINE)
0062          TABLE = INSERT(TABLE,3,W.DATE,W.TIME;I.TIME)
0063       END
0064       RETURN
0065 *
0066 BY.PID:
0067       IF NUM(T.PID) THEN
0068          T.PID = TRIM(T.PID) + 0
0069          LOCATE T.PID IN TABLE<2,1> BY 'AR' SETTING W.PID ELSE NULL
0070          TABLE = INSERT(TABLE,1,W.PID;LINE)
0071          TABLE = INSERT(TABLE,2,W.PID;T.PID)
0072       END ELSE
0073          HEADERS<1,-1> = LINE
0074       END
0075       RETURN
0076 *
0077    END



-----Original Message-----
From: Wjhonson <wjhon...@aol.com>
To: u2-users <u2-users@listserver.u2ug.org>
Sent: Fri, Aug 17, 2012 2:20 pm
Subject: [U2]  Sort the LISTU output


I just wrote a routine to grab the LISTU output (Universe on Windows) and sort 
it by date of logon, and then time of logon.  I'm going to also allow it to be 
sorted by the process id, and by the user name.

Has anyone already done this?  I don't want to reinvent the wheel if someone is 
willing to share their version of this task.

_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

 
_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to