PowerBuilder函数Pos,Mid在迁移后不起作用

时间:2012-03-07 10:36:36

标签: powerbuilder

我已将Powerbuilder 9应用程序迁移到PowerBuilder 12.5。迁移后,某些功能无法正常工作。

以下代码来自具有blob参数blobi的函数。

long ll_position, ll_start, ll_end

ll_position=Pos(String(blobi),'~f@1~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。感谢。

1 个答案:

答案 0 :(得分:4)

PowerBuilder 12.5默认使用Unicode字符串,因此String()函数需要两个字节来创建一个字符。要维护现有功能,请使用

String (blobi, EncodingANSI!)
祝你好运,

特里