2012-03-07 54 views
2

我已將Powerbuilder 9應用程序遷移到PowerBuilder 12.5。遷移後,一些功能無法正常工作。PowerBuilder函數Pos,Mid在遷移後不起作用

以下代碼來自具有blob參數blobi的函數。

long ll_position, ll_start, ll_end 

ll_position=Pos(String(blobi),'[email protected]~r~n',1) //does not work. 

上述行不適用於新版本。我想檢查我從ll_position得到什麼樣的價值:

messagebox("ll_position: ", ll_position) 

In PB 9, it returns 1 
In PB 12.5 it returns 0 

下一步:

ll_start=ll_position+5 

ll_end=Pos(String(blobi),Char(126),ll_start) //does not work. 

我獲得以下返回值:

messagebox("ll_end: ", ll_end) 

In PB 9, it returns 10 
In PB 12.5 it returns 0 

下一步:

dw_test.Object.numb[1]=Long(Mid(String(blobi),ll_start,ll_end -ll_start)) //does not work. 

我得到以下返回值:

long abc 
abc = dw_test.Object.numb[1] 

messagebox("dw value is: ", abc) 

in PB 9 it returns an integer like 1234 
in PB 12.5 it returns 0 

請幫助我解決上述問題,以及如何更改它們以使用PowerBuilder 12.5。謝謝。

回答

4

PowerBuilder 12.5默認使用Unicode字符串,因此您的String()函數需要兩個字節來創建一個字符。爲了保持現有的功能,使用

String (blobi, EncodingANSI!) 

祝你好運,

特里

+0

非常感謝特里!它解決了這個問題。 – user1251698 2012-03-07 14:19:55