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

使用COBOL中的指针进行数据移动


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

新的用户


已加入:2010年3月12日
帖子:64
地点:印度

发布发表:2010年7月13日,星期二,上午10:06
引用回复

嗨,大家好,

我有以下语句将var11和var22的今天双色球开奖结果分别加载到ptr-1和ptr-2。

将var11的今天双色球开奖结果设置为ptr-1。

将var22的今天双色球开奖结果设置为ptr-2。


现在,我需要使用ptr-1和ptr-2将var11中的数据移动到var22中。

您是我的新手,也无法在互联网上找到很多信息,您能否为我提供帮助?
回到顶部
查看用户资料 发送私信
安布

新的用户


已加入:2010年3月12日
帖子:64
地点:印度

发布发表:2010年7月13日,星期二,上午11:27
引用回复

抱歉,我只用了以下一种说法
设置ptr-1和ptr-2的值

将ptr-1设置为var11的今天双色球开奖结果。

将ptr-2设置为var22的今天双色球开奖结果。
回到顶部
查看用户资料 发送私信
比尔·奥博伊尔

CICS主持人


已加入:2008年1月14日
帖子:2504
地点:美国乔治亚州亚特兰大

发布发表:2010年7月13日,星期二,下午4:03
引用回复

使用指针和/或今天双色球开奖结果,没有任何数据移动。

将VAR22指向VAR11中的数据-

将VAR22的今天双色球开奖结果设置为PTR-1。

实际上,您还可以发布-

将VAR22的今天双色球开奖结果设置为VAR11的今天双色球开奖结果。

不需要定义POINTER。

VAR22和VAR11的长度是否相同?

如果VAR22的长度大于VAR11的长度,则需要参考修改才能查询数据。

如果VAR22(1:VAR11的长度)=

希望您的示例是假设的,因为除非您不知道自己在做什么,否则不要混入POINTERS / ADDRESSES。

法案
回到顶部
查看用户资料 发送私信
罗伯特·桑普

全球主持人


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

发布发表:2010年7月13日,星期二,下午4:04
引用回复

这是什么意思?
引用:
现在,我需要使用ptr-1和ptr-2将var11中的数据移动到var22中。
COBOL不会使用指针移动数据-COBOL使用MOVE语句移动数据。当然,假设两个变量都有今天双色球开奖结果。
回到顶部
查看用户资料 发送私信
凯尔德

活跃用户


已加入:2009年12月15日
帖子:365
地点:丹麦

发布发表:2010年7月13日,星期二,下午4:56
引用回复

在上一个 话题 您需要帮助来确定模块是否为2个变量(var11和var22)传递了今天双色球开奖结果。

不要误以为您应该使用指针来操纵这些变量。上一个主题为您提供了一个答案,即如何测试是否为这两个变量建立了有效的可寻址性。如果测试为阳性(非NULL),则可以照常在链接区域中使用定义。

如果测试为负(NULL),则不应执行对这些变量的任何引用。

这是一个例子:
码:

如果VAR11的今天双色球开奖结果= NULL
   将ws-default-var11移动到ws-var11
  ELSE
    MOVE var11            TO ws-var11
万一。
如果VAR22的今天双色球开奖结果= NULL
   将ws-default-var22移动到ws-var22
  ELSE
    MOVE var22            TO ws-var22
万一。

这样,您的其余代码可以在不引用链接节项目的情况下执行。您应该在模块的工作存储部分中定义ws- *变量。
回到顶部
查看用户资料 发送私信
安布

新的用户


已加入:2010年3月12日
帖子:64
地点:印度

发布发表:2010年7月14日,星期三,上​​午6:56
引用回复

嗨,大家好,

谢谢你的信息。

我的要求是使用VAR11和VAR22的今天双色球开奖结果将数据从VAR11移到VAR22。
正如Bill所建议的,我可以通过使用以下语句设置今天双色球开奖结果来实现

码:
将VAR22的今天双色球开奖结果设置为VAR11的今天双色球开奖结果。



还有一个问题:

执行上述语句后,VAR22将包含与VAR11相同的数据。
假设VAR11和VAR22的数据类型为PIC X(10)。
我希望将VAR11(1:5)移至VAR22(2:5)。

我该如何使用上面的SET今天双色球开奖结果代码?
回到顶部
查看用户资料 发送私信
罗伯特·桑普

全球主持人


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

发布发表:2010年7月14日,星期三,上​​午7:45
引用回复

引用:
我的要求是使用VAR11和VAR22的今天双色球开奖结果将数据从VAR11移到VAR22。
正如Bill所建议的,我可以通过使用以下语句设置今天双色球开奖结果来实现
这样的语句证明您对所讨论的内容没有任何概念,并且在任何情况下都不应尝试在代码中使用指针或今天双色球开奖结果。 您绝对绝对不能通过更改变量的今天双色球开奖结果将数据从变量移动到变量! 作为进一步的证据,您的问题
引用:
执行上述语句后,VAR22将包含与VAR11相同的数据。
假设VAR11和VAR22的数据类型为PIC X(10)。
我希望将VAR11(1:5)移至VAR22(2:5)。
就引用修改是MOVE而言,这是没有意义的,您不是在谈论MOVE而是在谈论今天双色球开奖结果更改。您的问题与询问READ语句如何计算总数完全相同-完全没有意义。

让我们假设您的程序已加载并准备好使用定义为PIC X(10)的var11和var22运行。 COBOL中的变量是(请注意,第一列实际上不在计算机中的任何位置):
码:
变量     Memory location     存储器位置00DD0000中的数据
var11        00DD0000           快速浏览
var22        00DD000A
因此,var11的DISPLAY将显示QUICKBROWN,而var22的DISPLAY将显示NOWISTHETI。您的代码执行您的SET语句。现在的内存是什么样的?
码:
var11        00DD0000           快速浏览
var22        00DD0000
var11的DISPLAY将打印QUICKBROWN,而var22的DISPLAY将打印QUICKBROWN。请注意,var22中的“旧”数据仍在内存中,仍在内存中的同一位置上,但是现在您无法访问它。在Java或C语言中,这10个字节将有资格进行垃圾回收。由于COBOL不使用动态结构,因此不存在垃圾回收,并且这些字节将保留其值,直到程序完成为止。
回到顶部
查看用户资料 发送私信
安布

新的用户


已加入:2010年3月12日
帖子:64
地点:印度

发布发表:2010年7月14日,星期三,上​​午8:25
引用回复

罗伯特你好,

我认为我不应该使用“ MOVE data”这个词...而是应该使用“ POINT data”这个词

根据您在声明后的建议

码:
将VAR22的今天双色球开奖结果设置为VAR11的今天双色球开奖结果


被执行

引用:
DISPLAY为var11将显示QUICKBROWN,而DISPLAY为var22将显示QUICKBROWN


您能建议我VAR22指向UICKBRO而不是QUICKBROWN的方法吗?

我希望我现在对我的问题很清楚。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


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

发布发表:2010年7月14日,星期三,上​​午9:02
引用回复

您好,

引用:
我的要求是使用VAR11和VAR22的今天双色球开奖结果将数据从VAR11移到VAR22。
这不是必需的。 。 。这也不是一个好方法。 。 。

引用:
您能建议我VAR22指向UICKBRO而不是QUICKBROWN的方法吗?
正如罗伯特(Robert)所提到的-您不了解正在发生的事情。 。 。一个“指针”就是这样- 指针。它指出 某处 -一个地方-一个今天双色球开奖结果。您正在尝试使其指向2个地方。

我不确定我是否真正了解您要执行的操作,但是我已经在成千上万个模块的“代码中”使用了,而没有人曾经有过这样的要求。

听起来好像有人听说过指针可以在某些情况下使用,并且搜索正在寻找需要此条件的“需求”。换句话说-寻找要解决的问题的解决方案。

您要执行的操作是引用修改无法完成的(比尔在第一封回复中建议) icon_confused.gif
回到顶部
查看用户资料 发送私信
罗伯特·桑普

全球主持人


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

发布发表:2010年7月14日,星期三,下午4:04
引用回复

引用:
您能建议我VAR22指向UICKBRO而不是QUICKBROWN的方法吗?
无法做到这一点。 VAR22不会指向QUICKBROWN-VAR22的今天双色球开奖结果所指向的字节是Q-因为今天双色球开奖结果是一个4字节的字段,指向内存的单个字节。您可以使用COBOL MOVE语句将UICKBRO字节移至另一个变量,但不能使用指针或SET ADDRESS。指针和SET ADDRESS不允许您更改变量的长度,因此您每次都获得变量的所有10个字节(根据您的示例)。
回到顶部
查看用户资料 发送私信
dbzTHEdinosauer

全球主持人


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

发布发表:2010年7月14日,星期三,下午4:58
引用回复

要考虑的事情:
码:

链接部分。
  01  LK-VAR-11.
        05  FIELD-1       PIC X(10).
        05  FIELD-2       PIC X(10).

  01  LK-VAR-22.
        05  FIELD-1       PIC X(10).
        05  FIELD-2       PIC X(10).

  01  LK-VAR-33.
        05  FILLER        图十(05).
        05  FIELD-1A      图十(05).

使用LK-VAR-11进行程序划分。

将LK-VAR-22的今天双色球开奖结果设置为LK-VAR-11的今天双色球开奖结果。
将LK-VAR-33的今天双色球开奖结果设置为LK-VAR-22的今天双色球开奖结果。

移动领域1A   TO WS-VAR-1


在上述情况下,如果包含LK-VAR-11
'12345AAAAA67890BBBBB'。
ws-var-1被定义为PIC X(05),
那么移动之后WS-VAR-1将包含AAAAA。

一旦了解了以上内容,该线程可能就会结束。
回到顶部
查看用户资料 发送私信
dbzTHEdinosauer

全球主持人


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

发布发表:2010年7月14日,星期三,下午5:04
引用回复

码:

工作存储。

  01 指针和其他填充物。
        05  傻瓜粉    USAGE IS POINTER.
        05  EVEN-MORE-BS   
             REDFINES
             SILLY-POINTER     PIC S9(08) COMP.

链接部分。
  01  LK-VAR-11.
        05  FIELD-1       PIC X(10).
        05  FIELD-2       PIC X(10).

  01  LK-VAR-33.
        05  FIELD-1A      图十(05).

使用LK-VAR-11进行程序划分。

将粉针设置为LK-VAR-11的今天双色球开奖结果
向EVEN-MORE-BS添加5
LK-VAR-33的设定今天双色球开奖结果  TO 傻瓜粉
移动领域1A   TO WS-VAR-1


在上述情况下,如果包含LK-VAR-11
'12345AAAAA67890BBBBB'。
ws-var-1被定义为PIC X(05),
那么移动之后WS-VAR-1将包含AAAAA。
回到顶部
查看用户资料 发送私信
凯尔德

活跃用户


已加入:2009年12月15日
帖子:365
地点:丹麦

发布发表:2010年7月14日,星期三,下午5:07
引用回复

在Cobol中,REDEFINES构造用于寻址具有不同变量定义的相同存储。

我建议您在进入指针体操之前探索重新定义存储空间的可能性。

引用:
执行上述语句后,VAR22将包含与VAR11相同的数据。
假设VAR11和VAR22的数据类型为PIC X(10)。
我希望将VAR11(1:5)移至VAR22(2:5)。

我该如何使用上面的SET今天双色球开奖结果代码?

您还不清楚其他问题:源字符串(VAR11(1:5)(5个字节))的长度与目标字符串VAR22(2:5)(4个字节)不同!
如果您的要求是将字符串的前5个字节移位1个字节,则可以编写:
码:
移动VAR11(1:5) to VAR11(2:6) or
移动VAR11(1:5) to VAR22(2:6)

在这两种情况下,假设两个变量的起始今天双色球开奖结果相同,则您的存储将包含“ QQUICKROWN”。
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> COBOL程式设计

 


类似主题
话题 论坛 回覆
没有新帖 比较两个文件以查找位置/日期... 同步排序 2
没有新帖 加载D ...时二级索引错误 IMS数据库/ DC 2
没有新帖 在UPDATE语句中跳过锁定的数据 DB2 9
该主题已锁定:您无法编辑帖子或回复。 将字段名称传递给COBOL程序 COBOL程式设计 10
没有新帖 COBOL性能调整 COBOL程式设计 6
搜索我们的论坛:


回到顶部