# STRING文

説明書の該当箇所: 6.5.27 STRING文

  STRING文.cob        英数字の連結
  日本語STRING文.cob  同じことを日本語項目で行う

どちらも Standard 版で動きます。正しく動くと OK だけが並びます。

# 何をする文か

複数の値をつないで、1つの項目に入れます。

  STRING "ABCDE" "fghij" DELIMITED BY SIZE INTO recv001.
    → recv001 は "ABCDEfghij"

  DELIMITED BY SIZE       項目の桁数ぶんすべてを使う
  DELIMITED BY "文字"     その文字までを使う

# POINTER — 何桁目から入れるか

WITH POINTER を付けると、入れ始める位置を指定できます。
また、入れ終わった次の位置がその項目に返ります。

  MOVE "**********" TO recv001.
  MOVE 3 TO pointer-1.
  STRING "ABCDE" DELIMITED BY SIZE INTO recv001 WITH POINTER pointer-1.
    → recv001 は "**ABCDE***"

3桁目から入るので、前の2桁の "**" は残ります。
入れ先を一度で埋めきらない、という点がこの指定の使いどころです。

# ON OVERFLOW — 入れ先に収まらないとき

入れ先の桁が足りないとき、または POINTER の値が範囲外のときは
ON OVERFLOW 側へ進みます。

サンプルでは POINTER を 1 に戻して収まる場合を用意し、
NOT ON OVERFLOW 側が通ることを表示で確かめています。

# 日本語版との違い

日本語版は日本語定数 NC"..." を連結します。
全角文字は2桁を占めるので、POINTER に指定する位置や
入れ先の桁数の数え方が英数字版と変わります。そこが見どころです。
