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