3

PowerBuilder に文字列があります。

string test_string = "1,2,3,4,5"

それを配列に変換したい:

 string array[] = {'1','2','3','4','5'}

どうやってするか?

// 手伝ってくれてありがとう :)

私がする:

    string string_to_edit = "1,2,3,4"
    string array[], string_now
    long arraylen, stringlen, place_nbr, i, place_tt

    stringlen = len(string_to_edit)
    DO WHILE  stringlen > 0 
        place_nbr = pos(string_to_edit, ",")
            IF place_nbr > 0 THEN
                place_tt = place_nbr - 1
                string_now = Mid(string_to_edit,0,place_tt)
                string_to_edit = RIGHT(string_to_edit,stringlen - place_nbr)
                stringlen = stringlen - place_nbr
            ELSE
                string_now = string_to_edit
                string_to_edit = RIGHT(string_to_edit,stringlen - place_nbr)
                stringlen = 0
            END IF
        string_now = trim(string_now)
        arraylen = UpperBound(array)
        array[arraylen+1] = string_now
    LOOP
4

3 に答える 3

5

PFC で行われている方法 ( of_parsetoarray() 関数) を見ると、インスピレーションを得ることができます。

https://pfc.svn.codeplex.com/svn/12.0/pfcapsrv/pfc_n_cst_string.sru

于 2012-08-08T00:59:54.687 に答える
3

文字列には任意の gettoken アルゴリズムを使用できます。PB の配列は自動的に拡張されます。例えば

string array[]
array[UpperBound(array)+1] = NextToken(test_string,',')

NextToken関数を自分で書くか、ループしますPos(test_string, ',', iFrom)

于 2012-08-07T18:40:01.870 に答える
0

1) 単一のテキスト列で構成される外部データソースでデータウィンドウを作成します。

2) データストアの作成を宣言し、上記 1 の datawindow オブジェクトをそれに割り当てます。

3) Importstring メソッドを使用して、文字列をデータストアに挿入します。このメソッドは、カンマ区切りの文字列 (CSV の ImportType!) を受け入れます。また、挿入された行数も返します。

4) データストア内の行をループして、値を配列に挿入します。

于 2016-08-12T16:56:15.767 に答える