DO 4 TIMES VARYING word FROM text-word1 NEXT text-word2.

本文展示了一个使用 ABAP 编程语言进行数据处理的例子,包括数字和字符型数据的操作。通过对一系列数值进行累加计算及字符字段的迭代处理,演示了基本的数据处理流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


DATA: BEGIN OF numbers,
        one   TYPE p LENGTH 8 DECIMALS 0 VALUE 10,
        two   TYPE p LENGTH 8 DECIMALS 0 VALUE 20,
        three TYPE p LENGTH 8 DECIMALS 0 VALUE 30,
        four  TYPE p LENGTH 8 DECIMALS 0 VALUE 40,
        five  TYPE p LENGTH 8 DECIMALS 0 VALUE 50,
      END OF numbers,
      sum     TYPE i.

*SELECT-OPTIONS position FOR sum.

*ADD numbers-one THEN numbers-two
*                UNTIL numbers-five
*                ACCORDING TO position
*                GIVING sum.
*WRITE  sum.


DATA: BEGIN OF text,
        word1 TYPE c LENGTH 4 VALUE '1234',
        word2 TYPE c LENGTH 4 VALUE 'BBBB',
        word3 TYPE c LENGTH 4 VALUE 'CCCC',
        word4 TYPE c LENGTH 4 VALUE 'DDDD',
      END OF text.

DATA: word  TYPE c LENGTH 4,
      char1 TYPE c LENGTH 1,
      char2 TYPE c LENGTH 1,
      leng TYPE i.

FIELD-SYMBOLS <word> LIKE text-word1.
DATA inc TYPE i.

DESCRIBE FIELD text LENGTH leng IN CHARACTER MODE.
leng = leng / 2.
WRITE :leng,/.

DO leng TIMES VARYING char1 FROM text(1)
                            NEXT text+2(1) RANGE text
              VARYING char2 FROM text+1(1)
                            NEXT text+3(1) RANGE text.
*  WRITE: char1, char2.
  WRITE: char2.
  char1 = 'x'.
  char2 = 'y'.
ENDDO.

DO 4 TIMES VARYING word FROM text-word1 NEXT text-word2.
  WRITE / word.
ENDDO.

DO.
  inc = sy-index  - 1.
  ASSIGN text-word1 INCREMENT inc TO <word> RANGE text.
  IF sy-subrc = 0.
*    WRITE / <word>.
  ELSE.
    EXIT.
  ENDIF.
ENDDO.

`varying vec2 v_textureCoordinates; 'varying' : Illegal use of reserved word` 这种错误提示通常出现在使用GLSL(OpenGL Shading Language)编写着色器程序的时候。 ### 错误原因分析 1. **GLSL版本差异** `varying` 是早期GLSL版本中用于声明顶点着色器和片段着色器之间传递数据的关键字。然而,在较新的GLSL版本(如4.x及以后),它已经被废弃,取而代之的是 `in`, `out` 和 `in/out` 关键字。 - 如果你在现代的GLSL环境中使用了旧版关键字 `varying`,就会触发这个“非法使用保留字”的错误。 2. **解决办法** 根据使用的 GLSL 版本进行调整: - 对于 OpenGL 3.3 及之前的版本:继续使用 `varying`。 - 对于 OpenGL 4.x 或更高版本:将 `varying` 替换为适当的输入/输出限定符 (`in` / `out`)。 ```glsl // 顶点着色器 Vertex Shader (Vertex shader outputs data) out vec2 v_textureCoordinates; void main() { v_textureCoordinates = ...; // 计算纹理坐标值并赋给v_textureCoordinates gl_Position = ...; // 设置最终位置向量 } // 片段着色器 Fragment Shader (Fragment shader receives the output from vertex shader as input) in vec2 v_textureCoordinates; void main() { vec4 texColor = texture(someTextureSampler, v_textureCoordinates); ... } ``` ### 示例对比表: | 功能 | 高版本语法 | 低版本语法 | |--------------------------|----------------------------------|------------------------| | 数据从顶点发送到片段 | 使用 `out/in` 定义变量 | 使用 `varying` | #### 其他注意事项 如果项目涉及跨平台支持,例如同时兼容 WebGL、桌面端等,则需要检查目标环境所允许的具体 GLSL 规范,并依此选择正确的语法规则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值