PB10.5中取五笔拼音首字母的问题
以下写法在PB9中正常,升级到10.5后不能得到正确结果,请高手指点
//==============================================================================
// 函数: f_getpywb()
//------------------------------------------------------------------------------
// 描述:
//------------------------------------------------------------------------------
// 参数:
// string inputstring
// string pywb
//------------------------------------------------------------------------------
// 返回值: string
//==============================================================================
STRING LETTER,LETTER1,THISLETTER,HZ,PYSTRING
INTEGER LETTERLEN,I
LONG QW
THISLETTER = TRIM(INPUTSTRING)
LETTERLEN = LEN(THISLETTER)
PYSTRING = ""
CHOOSE CASE upper(pywb)
CASE 'PY'
LETTER='ysx mcsdqlybjjjgczbdfyawj yhcywgj dsn xy sng lggllyj z yssgyqyd xjyydldwj wbbft xdhgbczsrfmjwyfcwdzpyddwylfaypdftzyjqxxzxnnxxzqbpysyzgmzbqbzcyzbxqsbhgxefmbhhgqcxstglygymxalelccxzrjsdnjjtzzcljdtstbnxtyxxgkwyflhyqspxmxxdjzlshxjbcfybyxhczbjyzlwlcz gtsmdzxpqglsjfzzlslhdzbwjncjysqycjrzcwybtyfdwecskdcbyhyzqyyxzcfbzmjyxxcdcztbzjwszsxyrnygmdthjxsjjccsbxyytsyfbxzgclczzbscyzqscjzqydxlbbjllmqxtydzsqjtzplcgqdzwjbhctdyfxyelbgxxmyjjqfzasyjncydk jcjszcbatcclyjqmwnqncllkbybzzsyhjqltwlccxthllzntylnzxddtceejys sd hwnly t jymrymcjgjmzgxykymsmjkmfxmtghpfmqjsmtgjqdgyalcmzsdjlxdffjczfmzffkgpkhrcjqcjdwjlfqdmlzbjjscgckdejcjdlzyckccclfcq czgbdldjjyhddwgsjdaccctllpskghzzljlgjgjjtjjjzczmlzyjklzyzmljkywxmkjlkjgmclykjqlblkmdxwyxysllpsjjjqxyjfjdjdmxxllcxqyjb bggypjyggdjgnjyjkhqfqzkhyghdkllsdjjxeyqxnzsxwwxdjlgxxjaqscsqkjex yzhydz p qyzmtstzfcyldjagylallyyygmqq ldhcssadsgbrlyjsjwrcgqc hmmxjdyohycqgbehwnjdogjlgwqwjycstwesjpwmrdsztxyqpzhyhykhtpbfyhtdwzbtxhqexzxxkhtexwltxymnx hykpmzhxlblbmlsfhyyggbhyjt'
LETTER=LETTER+'fhbxqbjjzjqtyzkxbyqxbjxshztsfglxmxzxfghkzssggylclsarjyhslllmzxelgl xdjtbgyzbpktzhkzjyqsbctwwqjpjwxhgaqtgylbxmmygszldydqmjjrgbjtkgdhgkblqkbdmbylxwcxyttybkmrtjzxqjbhlmhmjjzmqasldcyxyqdlqcafywyxqhzgnyfljbyfdjfrgsfmbyzhqfbwj yfaggphzbyyzffwodgrlbftwlbzgycgxcdj ygzyyyytytydwegazahxj zyyhlrmgrxx'+space(93)+'dclhneljjthtbwjybjjbxjjtjteekhwsljplpsfazpqqbdlqjjtyyqlyzkdksqj yyqzldqcgjjyzjs cmraqthtejmbctyhy'+space(93)+'bkmhyzw dqfhyyxwshctxrljgjxhccyyyjltktsytmxgtcjtzayyoczlylbszyw jytsjyhbyshfjlygjxxtmzyyltxxypzlx'+space(93)+'yjzyzyybnhmymdyylblhlsyyggllsqxlxhdwkqgyshqywljyyhzmsljljjcjjyy cbcpzjmylcjlnjjjlxyjmlzjqlycmhcfm'+space(93)+'mfpqqmfylmcfqmmmz fhjgtthkhchydxtmjdymyydyyydydcymdydlfmycqzwzz mabtbzmdzgdfycgqyttsfwbdtzqssstjj'+space(93)+'hjytsxlywwkxexwznnqzjjjjccchyyxbzxzcyjtllcqxynjycyycynzcqyyoewy czdcjehylpwp mlgkdldgqbchjxy'
......
//太长了,省去
FOR I = 1 TO LETTERLEN
IF ASC(MID(THISLETTER,I,1)) > 128 THEN
HZ = MID(THISLETTER,I,2)
QW = 190 * (ASC(LEFT(HZ,1)) - 129) + ASC(RIGHT(HZ,1)) - 64 + 1
IF QW < 1 THEN
PYSTRING = PYSTRING + "?"
ELSE
if QW>len(LETTER) then
PYSTRING = PYSTRING + "?"
else
PYSTRING = PYSTRING + MID(LETTER,QW,1)
end if
END IF
I = I + 1
ELSE
PYSTRING = PYSTRING + MID(THISLETTER,I,1)
END IF
NEXT
CASE 'WB'
..........
//太长了,省去
//254 * (ASC(LEFT(HZ,1)) - 129) + ASC(RIGHT(HZ,1)) - 64 + 1
FOR I = 1 TO LETTERLEN
IF ASC(MID(THISLETTER,I,1)) > 128 THEN
HZ = MID(THISLETTER,I,2)
QW = 254 * (ASC(LEFT(HZ,1)) - 129) + ASC(RIGHT(HZ,1)) - 64 + 1
IF QW < 1 THEN
PYSTRING = PYSTRING + "?"
ELSE
if QW>len(LETTER1) then
PYSTRING = PYSTRING + "?"
else
PYSTRING = PYSTRING + MID(LETTER1,QW,1)
end if
END IF
I = I + 1
ELSE
PYSTRING = PYSTRING + MID(THISLETTER,I,1)
END IF
NEXT
END CHOOSE
RETURN TRIM(lower(PYSTRING))