products/sources/formale Sprachen/REXX image not shown  

Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: GETDSN.REXX   Sprache: REXX

Original von: REXX©

/* REXX - mit Cursor markierte Datei wird als Parameter             */          
/* zurückgegeben                                                   */           
/*                                                                  */          
                                                                                
/* trace i */                                                                   
Version     = "Version 0.80 vom 19.02.2003"                                     
Autor       = "JD"                                                              
Redakteur1  = "NN"                                                              
                                                                                
address "ISREDIT"                                                               
"MACRO (DUMMY) NOPROCESS"                                                       
if rc /= 0 ! dummy="?" then do                                                  
   call help                                                                    
   exit(12)                                                                     
end                                                                             
"(ZEILE) = LINE .ZCSR"                                                          
upper zeile                                                                     
"(LIN,COL) = CURSOR"                                                            
"(DSN) = DATASET"                                                               
"CURSOR =" lin col                                                              
address "ISPEXEC" "CONTROL ERRORS RETURN"                                       
chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ#$@0123456789"  /* gültige Zeichen */        
seps  = ".()+-"                                    /* Trennzeichen */           
if lin = 0 ! col = 0 then                                                       
do                                                                              
  call message "Cursor not on data field"                                       
  exit 4                                                                        
end                                                                             
/* Suche nach links das 1. ungültige Zeichen */                                 
i = col                                                                         
do i = col to 1 by -1 while pos(substr(zeile,i,1),chars!!seps) > 0              
end                                                                             
anfang = i + 1                                                                  
do j = anfang by 1 while pos(substr(zeile,j,1),seps) > 0                        
end                                                                             
anfang = j                                                                      
/* Suche nach rechts das 1. ungültige Zeichen */                                
do i = anfang by 1 while pos(substr(zeile,i,1),chars!!seps) > 0                 
end                                                                             
ende = i - 1                                                                    
datei = substr(zeile,anfang,ende-anfang+1)                                      
if pos("(",datei) = 0  then                                                     
  if pos(")",datei) > 0 then                                                    
    ende=ende-1                                                                 
datei = substr(zeile,anfang,ende-anfang+1)                                      
/* nach (+1) oder (-1) untersuchen */                                           
if pos("+",datei) > 0 ! pos("-",datei) > 0 then do                              
   p=pos("+",datei)                                                             
   if p=0 then                                                                  
     p=pos("-",datei)                                                           
   datei=substr(datei,1,p-2)!!".*"                                              
   call dlist datei                                                             
   do i=1 to queued()                                                           
      pull last                                                                 
   end                                                                          
   datei=last                                                                   
end                                                                             
/* Dateiname steht fest */                                                      
if datei = "" then                                                              
do                                                                              
  call message "No dsn found"                                                   
  exit 4                                                                        
end                                                                             
/* Falls nur Membername */                                                      
if pos(".",datei) = 0,                                                          
!  pos(".",datei) = length(datei) then                                          
do                                                                              
  /* Entferne führende Separatoren */                                           
  do while pos(substr(datei,1,1),seps) > 0                                      
    datei = substr(datei,2)                                                     
    if datei = "" then                                                          
    do                                                                          
      call message "No dataset name specified"                                  
      exit 4                                                                    
    end                                                                         
  end                                                                           
  /* Entferne nachlaufende Separatoren */                                       
  do while pos(substr(datei,length(datei),1),seps) > 0                          
    datei = substr(datei,1,length(datei)-1)                                     
    if datei = "" then                                                          
    do                                                                          
      call message "No dataset name specified"                                  
      exit 4                                                                    
    end                                                                         
  end                                                                           
  if datatype(left(datei,1),"NUM"then                                         
  do                                                                            
    call message "Illegal member name" datei                                    
    exit 4                                                                      
  end                                                                           
  if length(datei) > 8 then                                                     
  do                                                                            
    call message "Membername too long:" datei                                   
    exit 4                                                                      
  end                                                                           
  /* look up in copybooks */                                                    
  d=copybook(datei)                                                             
  if d /= "not found" then                                                      
     datei=substr(d,2,length(d)-2)                                              
end                                                                             
"CURSOR = (LIN,COL)"                                                            
return datei                                                                    
/* Programm Ende */                                                             
                                                                                
/* Fehlerroutinen */                                                            
message: procedure                                                              
zedsmsg=arg(1)                                                                  
zedlmsg=arg(1)                                                                  
address "ISPEXEC" "SETMSG MSG(ISRZ001)"                                         
"CURSOR = (LIN,COL)"                                                            
return ""                                                                       
/* Programm Ende */                                                             
                                                                                
HELP:                                                                           
say ' '          
say 'ISPF/PDF REXX procedure to identify the dataset on cursor '          
say 'position and return it '                                  
say ' '          
say 'To run: '          
say '1. place the cursor on the dataset/member '          
say ' '          
say '2. Press ENTER '          
say ' '          
say '3. If you have questions about this command, '          
say ' contact Hamburg -4244. '          
Return                                                                          

¤ Dauer der Verarbeitung: 0.3 Sekunden  (vorverarbeitet)  ¤





Download des
Quellennavigators
Download des
sprechenden Kalenders

in der Quellcodebibliothek suchen




Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.


Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.


Bot Zugriff