2012-08-07 866 views
3

我有串在PowerBuilder: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 

回答

3

您可以使用任何爲gettoken算法的字符串。 PB中的數組自動增長。例如

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

NextToken功能自己,或循環使用Pos(test_string, ',', iFrom)

+0

此處的代碼片段:https://groups.google.com/forum/?fromgroups#!topic/sybase.public.powerbuilder.powerscript/N5w8Kvi9lo8使用此方法,但可能更易於剪切和粘貼 – 2012-08-07 20:36:00

+0

感謝幫助:) – Piszu 2012-08-07 21:06:21

0

1)用包含單個文本列的外部數據源創建一個數據窗口。

2)聲明一個創建一個數據存儲,並將數據窗口對象從上面1中分配給它。

3)使用Importstring方法將字符串插入數據存儲區。此方法接受逗號分隔的字符串(CSV的ImportType!)。它也返回插入的行數。

4)遍歷數據存儲中的行並將值插入到數組中。