Advertisement
Dronky

Practice

Jul 19th, 2016
1,173
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* rexx */                                                
  2. VOLSER='Z1DBMR'                                          
  3. CALL FIND                                                
  4. SAY TAPENAME SEQ                                          
  5. EXIT 0                                                    
  6. /* MAIN FIND PROC */                                      
  7. FIND: PROCEDURE EXPOSE VOLSER TAPENAME SEQ                
  8. /* FINDING VOLSER */                                      
  9. /* cutting disk name */                                  
  10. DSNLOG=SYSDSN("'SOFT.SUPPORT("VOLSER")'")                
  11. /* CHECKING IF DISK NAME IS EXIST IN SOFT SUPPORT */      
  12. IF DSNLOG='OK' THEN                                      
  13. DO                                                        
  14.   "alloc da('SOFT.SUPPORT("VOLSER")') F(INPUT) shr reuse"
  15.   "execio * diskr INPUT (stem VOL. finis"                
  16.   "FREE F(INPUT)"                                        
  17.   TAPENAME=SUBSTR(VOL.3,57,6)                            
  18.   /* IF TEMP FILE(LIB1) EXIST */                          
  19.   /* THEN DELETE IT */                                    
  20. if sysdsn("'LIB1'")='OK' THEN                                      
  21. DO                                                                
  22. ADDRESS TSO "DELETE 'LIB1'"                                        
  23. END                                                                
  24. /* LISTING OUT ALL FILES FROM THE TAPE: */                        
  25. "HSEND LIST DUMPVOLUME("TAPENAME") ODS('LIB1')"                    
  26. /* FINDiNG PROCESS */                                              
  27. /* WAITING FOR PREVIOUS FREE F() */                                
  28. ADDRESS SYSCALL 'sleep 1'                                          
  29. "alloc da('lib1') F(indd) shr reuse"                              
  30. "execio * diskr indd (stem strings. finis"                        
  31. "free f(indd)"                                                    
  32. /* P - VARIABLE FOR INCREMENTING STEMS AND CHECKING FIND RESULT */
  33. P=0                                                                
  34. DO I=1 TO STRINGS.0                                                
  35. IF INDEX(STRINGS.I,' 'VOLSER' ') /= 0 THEN                        
  36.   DO                                                              
  37.     P=P+1                                                          
  38.     STRS.0=P                                                      
  39.     STRSFULL.0=P                                                  
  40.       STRS.P=SUBSTR(STRINGS.I,25,3)                    
  41.       STRSFULL.P=STRINGS.I                            
  42.     END                                                
  43.   END                                                  
  44.   IF P /= 0 THEN                                      
  45.   DO                                                  
  46.     IF P>1 THEN                                        
  47.     DO                                                
  48.       /* SETTING UP 1ST LINE AS INITIAL YYYY/MM/DD */  
  49.       Y=SUBSTR(STRSFULL.1,50,4)                        
  50.       M=SUBSTR(STRSFULL.1,55,2)                        
  51.       D=SUBSTR(STRSFULL.1,58,2)                        
  52.       SEQ=SUBSTR(STRSFULL.1,25,3)                      
  53.       DO I=2 TO STRS.0                                
  54.         IF SUBSTR(STRSFULL.I,50,4)>Y THEN              
  55.         DO                                            
  56.           Y=SUBSTR(STRSFULL.I,50,4)                    
  57.           M=SUBSTR(STRSFULL.I,55,2)                    
  58.           D=SUBSTR(STRSFULL.I,58,2)                    
  59.           SEQ=SUBSTR(STRSFULL.I,25,3)                
  60.         END                                      
  61.         ELSE                                    
  62.         IF SUBSTR(STRSFULL.I,50,4)=Y THEN        
  63.         DO                                      
  64.           IF SUBSTR(STRSFULL.I,55,2)>M THEN      
  65.           DO                                    
  66.             M=SUBSTR(STRSFULL.I,55,2)            
  67.             D=SUBSTR(STRSFULL.I,58,2)            
  68.             SEQ=SUBSTR(STRSFULL.I,25,3)          
  69.           END                                    
  70.           ELSE                                  
  71.           IF SUBSTR(STRSFULL.I,55,2)=M THEN      
  72.           DO                                    
  73.             IF SUBSTR(STRSFULL.I,58,2)>D THEN    
  74.             DO                                  
  75.               D=SUBSTR(STRSFULL.I,58,2)          
  76.               SEQ=SUBSTR(STRSFULL.I,25,3)        
  77.             END                                  
  78.           END                                    
  79.         END                                      
  80.        END                                            
  81.        SEQ=SEQ*1                                      
  82.        /* SAY 'LAST DATE:'||Y||'/'||M||'/'||D||' */  
  83.        RETURN 1                                      
  84.        /* MUL 1 FOR REFORMAT 003 ==> 3 */            
  85.      END                                              
  86.      ELSE                                            
  87.      DO                                              
  88.      SEQ=SUBSTR(STRSFULL.1,25,3)*1                    
  89.      RETURN 1                                        
  90.      END                                              
  91.    END                                                
  92.    ELSE                                              
  93.    EXIT 0                                            
  94.  END                                                  
  95.  ELSE                                                
  96.  DO                                                  
  97.  SAY VOSLER 'NOT FOUND ON SOFT.SUPPORT'              
  98.  RETURN 0                                            
  99.  END                                                  
  100.  EXIT 0
Advertisement
RAW Paste Data Copied
Advertisement