首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rexx问题与REXX中的一个奇数错误

Rexx问题与REXX中的一个奇数错误
EN

Stack Overflow用户
提问于 2016-02-05 18:34:01
回答 2查看 297关注 0票数 0

我创建了一个rexx程序,用于从参数中读取一个文件,并将其逐行添加到一个数组中--我已经在其中添加了一些“do”,定义了一个搜索条件,然后搜索了该数组,从他们的“我希望它动态地向pd中添加一个新成员并将其填充到搜索结果”中。它可以工作,但会抛出一堆错误。

这是密码

代码语言:javascript
复制
/* REXX READ FILE */                        
/*                            */            
/*                            */            
/*                            */            
/*                            */            
ARG INFILE                                  
IF ARG() = 0 THEN                           
 DO                                         
 SAY 'INPUT REQUIRED'                       
 EXIT                                       
 END                                         
/*                            */            
/*                            */            
SAY 'WHAT IS THE STRING YOU ARE LOOKING FOR'
PULL SEARCHLINE                             
IF SEARCHLINE = "" THEN                     
   DO                                       
     SAY 'YOU DID NOT ENTER A STRING'       
     SAY 'PLEASE ENTER ONE NOW'          
     PULL SEARCHLINE                     
   END                                   
/*                            */         
/*                            */         
/*                            */         
/* VALIDATING FILE EXISTANCE*/           
  INDDFILE = INFILE                        
  "LISTC NVSAM ENT('"INDDFILE"') "         
   IF RC = 0 THEN                           
     DO                                       
      SAY "FOUND" INDDFILE                     
    END                                      
    ELSE DO                                  
    SAY  INDDFILE 'NOT FOUND'                
EXIT                                     
END                                      

/**************************************/ 
"ALLOC F(INFILE) DSN('"INDDFILE"')SHR REU"  
"EXECIO * DISKR INFILE ( FINIS STEM MYFILE."
"FREE F(INFILE)"                            
STRLENG = LENGTH(SEARCHLINE)                
INDEX = 0                                       
I = 1                                       
DO WHILE I <= MYFILE.0                      
  RESULT = POS(SEARCHLINE,MYFILE.I)         
     IF RESULT /= 0 THEN                    
        DO                                  
        MATCH.INDEX =LEFT(MYFILE.I,12)      
        SAY MATCH.INDEX                     
        SAY INDEX                           
        INDEX = INDEX +1                    
        END                                 

 I = I + 1                                  
 END                                        
 SAY "WHAT IS THE OUT PUT FILE? "           
PULL FILE                                                   
FILE1 = FILE                                                
SAY "WHAT WILL THE MEMBER BE CALLED?"                       
PULL MEMBER                                                 
/*******************************************/               
/*******************************************/               
ADRESS TSO                                                      
"ALLOC DA('"FILE1"') F(ABCD) NEW SPACE(10,20)DIR(100)TRACKS"
"FREE F(ABCD)"                                              
/*******************************************/               
"ALLOC FI(ABCD) DA('"FILE1"("MEMBER")')SHR"                 
"EXECIO" INDEX "DISKW ABCD (STEM MATCH. FINIS"              
"FREE F(ABCD)"                                              
IF RC <> 0 THEN DO                                          
 SAY "ERROR IN ALLOCATING THE PDS MEMBER" RC                
 END                                                        
EXIT      

这是我的错误

找不到命令入口 63 -加入TSO +++ RC(-3) +++数据集QXGCVNH.OUTLIB非ALLOCATED+ IGD17101I数据集Q*****H.OUTLIB未定义,因为目录中存在重复名称,返回代码为8原因代码是38 IGG0CLEH文件未释放,未分配

有人能建议我怎样才能纠正错误,这样我就不会那样跑了吗?如果有一种方法只返回您输入的字符串,而不是整行,有人可以建议吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-02-05 21:40:44

  1. 将入口TSO更改为在第63行地址TSO。
  2. 在分配FILE1之前,检查它是否存在,可以使用SysDSN、Listds、listcat等来完成。

基本上:

代码语言:javascript
复制
ADRESS TSO                                                      
"ALLOC DA('"FILE1"') F(ABCD) NEW SPACE(10,20)DIR(100)TRACKS"
"FREE F(ABCD)"    

基本变成

代码语言:javascript
复制
ADDRESS TSO 
if (File1 exists) then do                                           
    "ALLOC DA('"FILE1"') F(ABCD) NEW SPACE(10,20)DIR(100)TRACKS"
    "FREE F(ABCD)"    
end

不过,您需要研究如何做(File1存在),只需在检查各种选项时搜索它

票数 1
EN

Stack Overflow用户

发布于 2016-02-06 09:18:43

只返回字符串。您可能希望查看一些Rexx字符串处理函数。也许能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35231139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档