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

使用字符串时出现问题


IBM大型机论坛 -> COBOL程式设计
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
Jpsiddharth

新的用户


已加入:2005年2月21日
帖子:7

发布发表:2012年3月7日星期三上午5:39
引用回复

你好

我已经编写了以下逻辑

MOVE WS-ABC(1) TO WS-XYZ-LIST

从2到1执行X-CNT的变化
UNTIL 碳纳米管 > WS-CNT
字符串WS-XYZ-LIST由空格分隔
C逗号由大小分隔
WS-ABC(X-CNT)由空格分隔
进入WS-XYZ-LIST
结束播放
结束执行

我需要O / P作为

ABC,DEF,GHI

但它来了

美国广播公司

需要知道我在做什么错...

谢谢你的帮助
回到顶部
查看用户资料 发送私信
罗伯特·桑普

全球主持人


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

发布发表:2012年3月7日星期三上午6:21
引用回复

您的帖子就像泥一样清晰。 DEF来自哪里?您知道,不是吗,STRING VAR-1 通讯 VAR-2永远不会导致两个以上的变量进入输出变量,对吗?使用PERFORM只是意味着您要重复STRING多次-您是否没有将每个附加变量都附加到末尾?

您为什么不重头开始,告诉我们您要解决什么问题,然后让我们提供建议?
回到顶部
查看用户资料 发送私信
Jpsiddharth

新的用户


已加入:2005年2月21日
帖子:7

发布发表:2012年3月7日星期三下午1点14分
引用回复

罗伯特你好,

我需要将所有出现在表中的字符串串起来。

例如:

如果
WS表(1)= ABC
WS表(2)=定义
WS表(3)= GHI
WS表(4)= JKL

然后我需要将表的所有值都字符串化,并且o / p应该为
ABC,DEF,GHI,JKL

并且表的出现不是固定的,它的范围可以从0到n。
回到顶部
查看用户资料 发送私信
dbzTHEdinosauer

全球主持人


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

发布发表:2012年3月7日星期三下午1点20分
引用回复

ws-table的大小是多少?
回到顶部
查看用户资料 发送私信
chandan.inst

活跃用户


加入:2005年11月3日
帖子:275
地点:孟买

发布发表:2012年3月7日星期三下午1点36分
引用回复

另外,请指定结合表中所有出现次数的WS-XYZ-LIST大小。

WS-XYZ-LIST的大小应足以容纳表的所有出现。

问候,
昌丹
回到顶部
查看用户资料 发送私信
dbzTHEdinosauer

全球主持人


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

发布发表:2012年3月7日星期三下午1点40分
引用回复

引用:
WS-XYZ-LIST的大小应足以容纳表的所有出现。

每个使用的项目加上1个逗号。
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


已加入:2007年3月14日
帖子:10715
所在地:意大利

发布发表:2012年3月7日星期三下午2点50分
引用回复

引用:
使用字符串时出现问题

你自找的
你会失去鞋子的 icon_biggrin.gif
回到顶部
查看用户资料 发送私信
比尔·伍德格

主持人荣誉


加入时间:2011年3月9日
帖子:7311
位置:矩阵内部

发布发表:2012年3月7日星期三晚上10:04
引用回复

引用:
码:
MOVE WS-ABC(1)  TO  WS-XYZ-LIST

从2到1执行X-CNT的变化
UNTIL 碳纳米管 > WS-CNT
  STRING WS-XYZ-LIST        由空格分隔
         C-COMMA                  DELIMITED BY SIZE
         WS-ABC (X-CNT)       DELIMITED BY SPACE
  进入WS-XYZ-LIST
  结束播放
结束执行


我需要O / P作为

码:
ABC,DEF,GHI


但它来了

码:
美国广播公司


码:

WS表(1) = ABC
WS表(2) = DEF
WS表(3) = GHI
WS表(4) = JKL


然后我需要将表的所有值都字符串化,并且o / p应该为
码:
ABC,DEF,GHI,JKL


并且表的出现不是固定的,它的范围可以从0到n。


Jpsiddharth,

将您以前的帖子中的信息放在一起,然后对其进行“编码”(使用它们看起来不是更容易吗?),我具有以上内容。

您说您的表可以包含零个条目吗?您显示的代码无法满足您的要求。

您说逗号后要空格吗?您显示的代码无法满足您的要求。

如果逗号后有空格,则除第一个STRING之外,每次都将“松散”数据,因为您按空格定界。奇怪的是,您将获得描述的输出(ABC,GHI)。

因此,让我们猜测一下,您有一个类似以下的定义:

码:
01  通讯 PIC XX VALUE ", ".


对于您想要的内容,应该查看《语言参考》中STRING语句的POINTER部分。保存所有连续的输出字段字符串。

您需要正确处理表中的零和一条目。

我认为输出字段的长度与程序规范的长度相同。它不需要足够长的时间即可容纳所有条目。理想情况下,它应该足够长以容纳所有 数据 在条目中,加上dbz所说的逗号(比条目数少一个),再加上与逗号关联的空格。理想情况下并不总是会发生。您还需要代码来检查您是否没有用尽输出字段,并在发生输出字段时适当地对其进行处理。
回到顶部
查看用户资料 发送私信
dbzTHEdinosauer

全球主持人


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

发布发表:2012年3月7日星期三晚上10:46
引用回复

你从来没有费心回答物品的长度问题
但,
TS还没回来,所以我想他已经凑齐了
如果他有一支不错的QA团队,那会让他的屁股被咬
否则他的垃圾就会投入生产。

是因为我们不在乎。

注意Bill提出的有关长度的所有警告
当我必须在'STRUNG'值之间包含空格时,我将分享一个例程:

如果您将字符串“,@”而不是“,”
在您的表演中,它将起作用。
然后当你完成后,
检查按空格转换“ @”。
显然,您可以使用任何想要代表空格的字符。
我发现“标志”和“标记”非常有用。
我发现使用“虚拟”位置标记,然后在完成后进行转换,使代码更易于遵循。
有点像在rexx中处理单引号和双引号。

我认为,与POINTER交往超出了TS的能力,
特别是因为他无法使它工作。

比尔,您想补充什么吗?
回到顶部
查看用户资料 发送私信
Jpsiddharth

新的用户


已加入:2005年2月21日
帖子:7

发布发表于:2012年3月8日星期四12:02上午
引用回复

嗨,DBZ,

谢谢你的建议...

我已经更正了代码,现在可以正常工作...。

再次感谢您的时间。

问候,
悉达思
回到顶部
查看用户资料 发送私信
比尔·伍德格

主持人荣誉


加入时间:2011年3月9日
帖子:7311
位置:矩阵内部

发布发表:2012年3月8日,星期四,凌晨1:03
引用回复

一个条目确实可以正常工作。

零项不会,它会清除从表中剩下的所有垃圾。请记住,“垃圾”看起来很正常,我敢肯定它至少会在某个时候被用户抓住。

您对检查已创建字段的大小做了什么?

指针对于了解总大小也很有用。
回到顶部
查看用户资料 发送私信
dbzTHEdinosauer

全球主持人


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

发布发表:2012年3月8日,星期四,上午1:29
引用回复

如果要修改此内容:
引用:

从2到1执行X-CNT的变化
UNTIL 碳纳米管 > WS-CNT
字符串WS-XYZ-LIST由空格分隔
通讯 DELIMITED BY SIZE
WS-ABC(X-CNT)由空格分隔
进入WS-XYZ-LIST
结束播放
结束执行


对此:
码:

初始化WS-XYZ-LIST
PERFORM VARYING 碳纳米管
           FROM 2 BY 1
          UNTIL 碳纳米管 > WS-CNT
     IF WS-ABC(X-CNT) > SPACE
     THEN
        STRING WS-XYZ-LIST
                  由空格分隔
               C-COMMA
                  DELIMITED BY SIZE
               WS-ABC (X-CNT)
                  由空格分隔
          进入WS-XYZ-LIST
        结束播放
     END-IF
结束执行


您不会因为物品空而产生,,,的问题。

正如比尔所说,
在填充之前初始化表

确保WS-XYZ-LIST的长度合适。
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> COBOL程式设计

 


类似主题
话题 论坛 回覆
没有新帖 需要将单行分成两行 DFSORT / ICETOOL 7
没有新帖 如何转换十六进制字符串t char十六进制 PL / I和组装商 6
没有新帖 从字符串'...获取下5个数字 COBOL程式设计 4
没有新帖 找到一个字符串并隐藏多个... DFSORT / ICETOOL 11
没有新帖 字符串到ASCII的转换 COBOL程式设计 4
搜索我们的论坛:


回到顶部