Копировать значения символов из переменной массива символов в символьную (строковую) переменную - PullRequest
1 голос
/ 28 марта 2012

это моя проблема

define varibale MyArray as character extent 40 no-undo.
define variable Mychara as character           no-undo.

Mychara = "hai this is checking how to copy values"

Теперь я хочу скопировать эту строку в мой «MyArray». Так что должно быть так:

MyArray [1] = h, MyArray [2] = a, MyArray [3] = i, MyArray [4] = "", MyArray [5] = t, MyArray [6] = h и так далее ...

Так как это сделать?

Ответы [ 3 ]

6 голосов
/ 28 марта 2012

Учитывая ваш пример кода, это должно помочь:

define variable MyArr as character EXTENT 40 no-undo.
define variable Mychara as character           no-undo.

Mychara = "hai this is checking how to copy values".

DEF VAR i AS INT NO-UNDO.

DO i = 1 TO 40:
    MyArr[i] = SUBSTRING(MyChara,i,1).
END.

Предупреждение: это означает, что вы должны знать (максимальный) размер вашей строки заранее, чтобы определить размер массивасоответственно.

2 голосов
/ 14 апреля 2012

немного динамично;)

define variable MyArr   as character EXTENT no-undo.
define variable Mychara as character no-undo.
DEF    VAR      i       AS INT       NO-UNDO.

Mychara = "hai this is checking how to copy values".

EXTENT (MyArr) = LENGTH (Mychara).

DO i = 1 TO EXTENT (MyArr):
  MyArr[i] = SUBSTRING(MyChara,i,1).
END.
1 голос
/ 23 июля 2012
define var l_mychara as integer no-undo.
define variable MyArray as character format "x(5)" extent 40 no-undo.
     define variable Mychara as character format "x(5)" no-undo.
def var i as int init 1.

Mychara = "hai this is checking how to copy values".
    assign l_mychara = length(Mychara).

do while i <= l_mychara.
    assign myarray[i] =   substring(mychara,i,1).
    if myarray[i] = "" then assign myarray[i] = "blank".
    i = i + 1.
   end.

disp Myarray .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...