IBM大型机论坛索引
 
 登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 寄存器
 

没有尾随空格的字段的串联


IBM大型机论坛 -> COBOL程式设计
发表新话题   该主题已锁定:您无法编辑帖子或回复。
查看上一个主题 :: 查看下一个主题  
作者 信息
桑卡尔

新的用户


已加入:2007年9月7日
帖子:2
地点:新加坡

 发布 发表:2009年6月1日星期一8:52 am
引用回复

你好

您能否为我提供一个简单的解决方案,用于串联6个字段而没有尾随空格。目标变量的长度为60,并且6个字段的总长度超过60。串联后,前60个非空格字符应位于我的目标变量中。我使用了“ Perform Unitil”和下标,这似乎很有风险。请让我知道一个简单的解决方案。非常感谢。

问候,
桑卡尔。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

 发布 发表:2009年6月1日星期一9:12上午
引用回复

您好Sankar,欢迎来到论坛,

您需要更好地描述您想做什么。

如何定义6个字段?如果6个字段中有超过60个非空白字符,该怎么办?

建议您显示一些代表性的样本输入以及您希望从该输入中获得的输出。

引用:
我使用了“ Perform Unitil”和下标,这似乎很有风险。
有什么风险?

如果要在输出“字段”中放入前60个非空格,只需将所有6个输入字段放入一个组字段中,并使用引用修改来解析该组字段,直到找到前60个非输入或到达输入的末尾。确保在每组新输入的开头都将空格移动到输出区域。
回到顶部
查看用户资料 发送私信
桑卡尔

新的用户


已加入:2007年9月7日
帖子:2
地点:新加坡

 发布 发表:2009年6月1日星期一9:30 pm
引用回复

嗨D.sch,

非常感谢您的宝贵意见。我的要求如下。

输入:
--
变数1-> 80 bytes
变数2-> 20 bytes
变数3-> 20 bytes
变数4-> 12 bytes
变数5-> 20 bytes
变数6-> 20 bytes

输出量
--------
输出变量-> 60 bytes.

以下是我的要求。

1。

2.如果只有变量1具有值并且其余所有均具有空格,则我将从变量1中获取整个60字节。如果变量1以外的其他任何变量具有值,则将从变量1中获取前30个字节,其余30来自其他具有非空格字符的变量。

我有用户“ Perform Unitil”和下标,通过扫描最后一个变量来查找非空间字符的首次出现。我计算了六个字段的长度,然后将它们合并起来,因为我使用的下标可能会导致“ 107”或“ 104”错误,因此我感到有风险。因此,能否请您提出一个带有示例逻辑的简单解决方案。

再次非常感谢您的指导。

问候,
桑卡
回到顶部
查看用户资料 发送私信
罗伯特·桑普

全球主持人


已加入:2008年6月6日
帖子:8569
地点:美国爱荷华州迪比克

 发布 发表:2009年6月1日星期一10:42 pm
引用回复

引用:
因此,能否请您提出一个带有示例逻辑的简单解决方案。
根据您所描述的逻辑要求,我认为没有任何“简单”的解决方案。

您在“要求”中未提及的内容:
如果所有六个变量都是空格怎么办?
如果变量1是空格而变量3、4和5不是空格怎么办?
如果变量1和变量4是仅有的两个非空格怎么办-从变量1获得30个字节但从变量4获得12个字节-其他18个字节应该是什么呢?
您是在谈论前导空格还是尾随空格?如果变量1的前10个字节中有3个空格(例如位置2、6、9)怎么办?

我怀疑您认为存在的“风险”是由于措辞不当和要求不完整,而不是数据或语言的任何固有特性所致。
回到顶部
查看用户资料 发送私信
救助

新的用户


已加入:2009年2月20日
帖子:96
地点:班加罗尔:)

 发布 发表:2009年6月2日,星期二,凌晨1:49
引用回复

桑卡尔 ,在编码时做出以下假设。
引用:
我只想连接上面所有6个字段,只要它具有一些值即可。我还需要将前60个非空格字符连接到我的目标输出变量中。
如果所有6个变量都带空格,则目标值将带空格。
引用:
如果只有变量1具有值并且其余所有都具有空格,那么我将从变量1中获取整个60字节。如果除变量1之外的其他任何变量都具有值,则它将从变量1中获取前30个字节,从其他变量中获取30具有非空格字符的变量。
A.如果只有变量1具有值,其余变量具有空格,则变量1将移至输出变量。
B.如果任何其他变量具有值,则变量1的前30个字节和其他变量(无空格)的其余部分按2、3、4顺序进入输出变量&5.
C.此代码只会删除尾随空格。
码:

检查功能反转(VAR1)           
汇总VAR1-LEN用于领先的空间     
从80个给定的VAR1-LEN中减去VAR1-LEN

检查功能反转(VAR2)           
总计VAR2-LEN用于领先的空间     
从20个VAR2-LEN中减去VAR2-LEN

检查功能反转(VAR3)           
汇总VAR3-LEN以取得领先的空间       
从20个VAR3-LEN中减去VAR3-LEN

检查功能反转(VAR4)           
汇总VAR4-LEN以取得领先的空间     
从12个给定VAR4-LEN中减去VAR4-LEN

检查功能反转(VAR5)             
汇总VAR5-LEN用于领先的空间       
从20个VAR5-LEN中减去VAR5-LEN 

 检查功能反转(VAR6)           
 汇总VAR6-LEN以取得领先的空间       
 从20个VAR6-LEN中减去VAR6-LEN

如果VAR2 =空间  AND                               
     VAR3 = SPACES  AND                               
     VAR4 = SPACES  AND                               
     VAR5 = SPACES  AND                               
     VAR6 = SPACES  AND                               
     VAR1不等距                             
                                                       
     MOVE VAR1(1:VAR1-LEN) TO VARF                     
     显示'输出变量的最终值:' VARF
其他    
   IF VAR2不等于空格或   
     VAR3不等于空格或   
     VAR4不等于空格或   
     VAR5不等于空格或   
     VAR6不等于空格,并且   
     VAR1 = SPACES (您可以对此做出决定)                 
     MOVE VAR1(1:VARIN) TO VARF                       
     COMPUTE 瓦林 = 瓦林 + 1                       
     如果VAR2不等距                         
         MOVE VAR2(1:VAR2-LEN) TO VARF(VARIN:VAR2-LEN)
         COMPUTE 瓦林 = 瓦林 + VAR2-LEN             
     END-IF                                           
                                                 
     如果VAR3不等距                         
     MOVE VAR3(1:VAR3-LEN) TO VARF(VARIN:VAR3-LEN)
     COMPUTE 瓦林 = 瓦林 + VAR3-LEN             
     END-IF   

     如果VAR4不等距                       
     MOVE VAR4(1:VAR4-LEN) TO VARF(VARIN:VAR4-LEN)
     COMPUTE 瓦林 = 瓦林 + VAR4-LEN             
     END-IF   

     如果VAR5不等距                       
    MOVE VAR5(1:VAR5-LEN) TO VARF(VARIN:VAR5-LEN)
    COMPUTE 瓦林 = 瓦林 + VAR5-LEN 
    万一          
   
   如果VAR6不等距                       
   MOVE VAR6(1:VAR6-LEN) TO VARF(VARIN:VAR6-LEN)
   COMPUTE 瓦林 = 瓦林 + VAR6-LEN             
   END-IF   

  万一                                      
万一                                          
显示'输出变量的最终值:' VARF 

根据您的要求进行调整。

WTH。
回到顶部
查看用户资料 发送私信
救助

新的用户


已加入:2009年2月20日
帖子:96
地点:班加罗尔:)

 发布 发表:2009年6月2日,星期二,凌晨1:54
引用回复

忘记包含变量定义。
码:
工作存储。
01 VAR1 PIC X(80) VALUE SPACES.       
01 VAR2 PIC X(20) VALUE SPACES.       
01 VAR3 PIC X(20) VALUE SPACES.       
01 VAR4 PIC X(12) VALUE SPACES.       
01 VAR5 PIC X(20) VALUE SPACES.       
01 VAR6 PIC X(20) VALUE SPACES.       
01 VARF PIC X(60) VALUE SPACES.       
01 VAR1-LEN图片9(02) VALUE ZEROES.   
01 VAR2-LEN图片9(02) VALUE ZEROES.   
01 VAR3-LEN图片9(02) VALUE ZEROES.   
01 VAR4-LEN PIC 9(02) VALUE ZEROES.   
01 VAR5-LEN图片9(02) VALUE ZEROES.   
01 VAR6-LEN图片9(02) VALUE ZEROES.   
01 VARF-LEN PIC 9(02) VALUE ZEROES.   
01 瓦林    PIC 9(02) VALUE 30.       

 PROCEDURE DIVISION.   
  0001-MAIN.  (我用接受来输入变量)         
        ACCEPT VAR1   
        ACCEPT VAR2   
        ACCEPT VAR3   
        ACCEPT VAR4   
        ACCEPT VAR5   
        ACCEPT VAR6   
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

 发布 发表:2009年6月2日,星期二,凌晨2:47
引用回复

您好,

此代码是否处理嵌入式空间?它似乎没有这样做。

引用:
根据您的要求进行调整。
怀疑不仅要“花时间”才能达到尚未明确定义的要求。 。 。

我相信Sankar需要在实施代码之前提供其他“规范”。
回到顶部
查看用户资料 发送私信
救助

新的用户


已加入:2009年2月20日
帖子:96
地点:班加罗尔:)

 发布 发表:2009年6月2日,星期二,凌晨3:07
引用回复

引用:
此代码是否处理嵌入式空间?它似乎没有这样做。

迪克,您能否详细说明“嵌入式空间”一词。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

 发布 发表:2009年6月2日,星期二,凌晨3:18
引用回复

您好Succor,

如果field1包含
码:
AAA BBCCFFRR GGHHJJ  TTRREEWW     
它包含嵌入式空间,而不仅仅是尾随空间(我相信所有发布的代码都可以检测到)。如果我正确阅读了原始请求,则输出数据中应该没有空格。

正如罗伯特和我都提到的那样,需求需要更好的定义。
回到顶部
查看用户资料 发送私信
救助

新的用户


已加入:2009年2月20日
帖子:96
地点:班加罗尔:)

 发布 发表:2009年6月2日,星期二,凌晨3:26
引用回复

正如OP所指定的
引用:
您能否为我提供一个简单的解决方案,用于串联6个字段而没有尾随空格。

根据我确定的假设:
引用:
C.此代码只会删除尾随空格。
我已经建议了代码。
引用:
迪克,您能否详细说明“嵌入式空间”一词。

我只是想确认一下我的理解,这与您的解释相同。
引用:
正如罗伯特和我都提到的那样,需求需要更好的定义。

可能这是必需的,我们需要等待详细明确的要求。

WTH。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

 发布 发表:2009年6月2日,星期二,凌晨3:32
引用回复

您好Succor,

引用:
您能否为我提供一个简单的解决方案,用于串联6个字段而没有尾随空格。
您专注于此。 。 。

引用:
串联后,前60个非空间字符应位于我的目标变量中。
这是您引用的同一段中的稍后一句话。 。 。
回到顶部
查看用户资料 发送私信
救助

新的用户


已加入:2009年2月20日
帖子:96
地点:班加罗尔:)

 发布 发表:2009年6月2日,星期二,上午4:56
引用回复

引用:
引用:
串联后,前60个非空间字符应位于我的目标变量中。
这是您引用的同一段中的稍后一句话。 。 。

迪克,您真的认为如果所有变量都有空格并且他不想用其他东西填充它们是可能的吗?
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

 发布 发表:2009年6月2日,星期二,上午5:21
引用回复

引用:
迪克,您真的认为如果所有变量都有空格并且他不想用其他东西填充它们是可能的吗?
我相信,除非/直到发布更好的定义,否则所有这一切都是浪费精力。 。 。 icon_confused.gif

我继续进行此对话框的唯一原因是有一堂课 威力 从以下主题中获取: 当一个或多个高级贡献者发布需要更多/更好的信息时,TS应该在开始提供主要基于猜测的技术替代方案之前提供该信息。

d
回到顶部
查看用户资料 发送私信
救助

新的用户


已加入:2009年2月20日
帖子:96
地点:班加罗尔:)

 发布 发表:2009年6月2日,星期二,上午5:43
引用回复

引用:
我相信,除非/直到发布更好的定义,否则所有这一切都是浪费精力。 。 。
不,这不是浪费精力,因为许多人通过实际帮助他人来学习和理解……我当然也这样做。
引用:
我继续进行此对话框的唯一原因是,可以从该主题中吸取一个教训:当一个或多个高级贡献者发布需要更多/更好的信息时,TS应该在提供技术替代方案之前先提供信息。主要基于猜测。

我是一个初学者,我的知识与您息息相关
引用:
高级贡献者
我要感谢您继续进行讨论。

WTH。
回到顶部
查看用户资料 发送私信
dbzTHEdinosauer

全球主持人


已加入:2006年10月20日
帖子:6967
位置:瓷宝座

 发布 发表:2009年6月2日,星期二,上午5:51
引用回复

引用:
主要基于猜测的技术替代方案。


然后我们要经过100个帖子 有人为自己的职位辩护(阅读: 猜测 ).

这个 为什么 我的 发布 原为 ......(太可惜我们没有bbcode表示抱怨!)

(在我撰写这篇文章的时间中-我很慢,我知道-
又发表了一篇文章。。。。,伙计,要说最后一句话!)

抱歉,已经晚了,我不应该“攻击”贡献者。
我的道歉(是的,我的帖子仍然有效)
回到顶部
查看用户资料 发送私信
罗伯特·桑普

全球主持人


已加入:2008年6月6日
帖子:8569
地点:美国爱荷华州迪比克

 发布 发表:2009年6月2日,星期二,上午6:00
引用回复

引用:
太糟糕了,我们没有bbcode表示抱怨
好,让我们聚在一起,索要wwcode! icon_smile.gif
回到顶部
查看用户资料 发送私信
救助

新的用户


已加入:2009年2月20日
帖子:96
地点:班加罗尔:)

 发布 发表:2009年6月2日,星期二,上午6:42
引用回复

引用:
然后我们必须去捍卫他的帖子的人浏览100篇帖子(阅读:猜测)。
您不是主持人来看看每个人都在发布什么...但是您这样做..这就是您增加帖子的方式...尝试给出更好的答案,然后干预发现的任何事情都可以帮助您的事业。我希望有一天您将了解您将在这里为您提供帮助。
是的,对我们所有人来说已经很晚了,我想我已经完成了。
DBz先生..您又成功了...这是我的最后一篇帖子,感谢您嘲笑人们,然后再帮助他们...。
迪克(不是Dbz),我理解并尊重您的观点。您在帮助人们方面非常出色,我对此表示钦佩。

主持人,请不要偏见...这当然不是一个很好的例子。尽管离开这样的论坛不是一个好主意。.我要感谢所有博学的人。

WTF。
回到顶部
查看用户资料 发送私信
dbzTHEdinosauer

全球主持人


已加入:2006年10月20日
帖子:6967
位置:瓷宝座

 发布 发表:2009年6月2日,星期二,下午3:16
引用回复

如果您认为我要让您在此主题中发表最后一个帖子,那么您就像疯了一样,既不安全又天真。

如果我是主持人,那么我将对那些不应该受到文明对待的人很好。

3/4的时间,启动线程的原因是因为TS 不能 定义问题.

我几乎100%的顾问工作是由于我能够确定问题。

几乎每个人都可以编写代码,但是很少(似乎)可以确定问题的原因。

这个线程是一个不完整想法的一个很好的例子。
目前有几个线程可以解决问题,
他们掩盖了症状(例如,等待工作)

迪克·谢勒试图迫使TS定义他的要求。
之后,TS可能已经解决了他的问题。

引用:
主持人,请不要偏见

强迫张贴者以为没有偏见。

每个线程的帖子数增加一,而不是一个“贡献”到一个线程。
帖子数似乎是您的问题。
回到顶部
查看用户资料 发送私信
UmeySan

活跃成员


已加入:2006年8月22日
职位:771
地点:德国

 发布 发表:2009年6月2日,星期二,下午3:47
引用回复

所以在这里我也投入了两美分。

为什么有些人会假设有些人有足够的时间去思考另一个完整而复杂的任务描述。

当他与任务小组取得联系时,大多数其他想法和相关提示都应该是TS问题评估的一部分。这是正常工作。
回到顶部
查看用户资料 发送私信
救助

新的用户


已加入:2009年2月20日
帖子:96
地点:班加罗尔:)

 发布 发表:2009年6月2日,星期二,下午5:41
引用回复

引用:
vvmanyam,
你是对的。我为我的帖子表示歉意。
_________________
迪克·布伦霍兹(Dick Brenholtz)。

引用:
我试图参加我不了解的讨论。迪克·布伦霍尔茨
引用:

我的回答没有多大意义。迪克·布伦霍尔茨

继续计数...这只是我遇到的那些的子集,这就是您完成的方式
引用:
我几乎100%的顾问工作是由于我能够确定问题。
..希望有一天,您将学习如何确定问题。自称冠上的另一颗珠宝。
DBZ的真诚努力
最好删除此帖子...更多的人阅读所有这些内容...他们对你笑的越多....我从没想过我会再发布......但是像你这样的人....我希望我们在这里停留,直到除非你想让自己更加丢脸-否则新秀。
我知道,您在这个论坛上说了很多糟糕的话,仍然有主持人一直支持您...他们将继续...

祝大家好运。
救助
回到顶部
查看用户资料 发送私信
dbzTHEdinosauer

全球主持人


已加入:2006年10月20日
帖子:6967
位置:瓷宝座

 发布 发表:2009年6月2日,星期二,下午6:17
引用回复

我意识到您对Succor有问题,

但请正确地引用我。

链接到以上引用的线程:

ibmmainframes.com/viewtopic.php?p=192267&highlight=&sid = d45f8a06d68823cc0954e52f44f93261

ibmmainframes.com/viewtopic.php?t=40901&start=0&postdays=0&postorder=asc&highlight=&sid = d45f8a06d68823cc0954e52f44f93261

ibmmainframes.com/viewtopic.php?p=192810&highlight=&sid = d45f8a06d68823cc0954e52f44f93261
回到顶部
查看用户资料 发送私信
救助

新的用户


已加入:2009年2月20日
帖子:96
地点:班加罗尔:)

 发布 发表:2009年6月2日,星期二,下午6:48
引用回复

引用:
我意识到您对我有麻烦
您是否与“定义问题”的能力一样“实现”。我认为如此...我有更好的生活要做,然后与像你这样的人发展问题....你不值得。
引用:
但请正确地引用我。链接到以上引用的线程:
他们正确地张贴了,人们有头脑去理解..谢谢..不要太努力地迪克,您最终会使自己太混乱了..在这里停止它...我完成了。
回到顶部
查看用户资料 发送私信
dbzTHEdinosauer

全球主持人


已加入:2006年10月20日
帖子:6967
位置:瓷宝座

 发布 发表:2009年6月2日,星期二,7:14 pm
引用回复

赌你不是!
回到顶部
查看用户资料 发送私信
外籍人士

全球主持人


已加入:2007年3月14日
帖子:8794
地点:威尔士威尔士

 发布 发表:2009年6月2日,星期二,7:16 pm
引用回复

我相信是时候锁定这个线程了。

我敢肯定,如果您确实愿意,那么离线将是继续战斗的更好场所。
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   该主题已锁定:您无法编辑帖子或回复。 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> COBOL程式设计

 


类似主题
话题 论坛 回覆
没有新帖 将记录分解为各个字段,每个字段... 同步排序 2
没有新帖 如果数据元素为0,则将其映射到SPACES COBOL程式设计 2
没有新帖 MODE = IN或... CICS 3
没有新帖 在不同的字段上排序,删除重复项... 同步排序 8
没有新帖 请帮助-具有SUM字段的SORT和... DFSORT / ICETOOL 6
搜索我们的论坛:


回到顶部