2012-03-28 3 views
1

das ist mein ProblemKopieren Zeichenwerte von Zeichenfeld Variable Zeichen (string) Variable

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" 

Nun ich diese Zeichenfolge zu meinem „MyArray“ kopieren möchten. So sollte es wie folgt sein:

MyArray [1] = h, MyArray [2] = a, MyArray [3] = i, MyArray [4] = "", MyArray [5] = t, MyArray [6 ] = h und so weiter ...

So, wie es geht?

Antwort

5

Code-Beispiel gegeben, sollte dies den Trick:

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. 

Eine Einschränkung allerdings: Das bedeutet, dass Sie die (maximale) Größe Ihres String wissen müssen vorher, die Array-Größe in geeigneter Weise zu definieren, .

2

wenig dynamisch;)

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
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 . 
+0

Willkommen Überlauf zu stapeln. Bitte fügen Sie Ihrem Code eine Erklärung hinzu, ansonsten eine ziemlich saubere Antwort. – qdot