因錯位的欄位會出現在中文字的後一個欄位
所以需要算出原本8300的字元數與4110的字元數差異後
才知道下一欄要放多少位移數。
Ex:
t_text+57(40) = field.
之後要計算 下一個欄位要開始的位置~
call function 'SCMS_STRING_TO_XSTRING'
exporting
text = field ---> 中英文混雜字串
mimetype = 'C'
encoding = '8300' ---> 以8300 編碼轉換
importing
buffer = out_str. -->轉換出來的文字字串
len_in_byte = xstrlen( out_str ). >計算出8300的長度
len_in_char = strlen( field ). ---> unicode長度
diff = len_in_byte - len_in_char. ----> 計算 unicode 與非 unicode 長度差異
unicode 長度<=編碼8300的長度
pos = 57 + ( 40 - diff ) . ---> 計算下一個欄位的位置
所以下一個欄位
t_text+pos(n) = xxxx.
沒有留言:
張貼留言