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 分配给它。

3) 使用 Importstring 方法将字符串插入数据存储区。此方法接受逗号分隔的字符串(CSV 的 ImportType!)。它还返回插入的行数。

4) Loop through the rows in the datastore and insert the values into the array.

于 2016-08-12T16:56:15.767 回答