续字符串转GBK码(100分),在线等待结贴 ( 积分: 100 )

  • 主题发起人 主题发起人 kukow
  • 开始时间 开始时间
K

kukow

Unregistered / Unconfirmed
GUEST, unregistred user!
Function&nbsp;ChinesetoGBK(AiChinese:&nbsp;String):&nbsp;String;&nbsp;&nbsp;//把字符串转换成GKB码<br>var<br>&nbsp;&nbsp;ch,&nbsp;cl,&nbsp;I&nbsp;:&nbsp;Integer;<br>&nbsp;&nbsp;S&nbsp;:&nbsp;string;<br>Begin<br>&nbsp;&nbsp;S:='';<br>&nbsp;&nbsp;For&nbsp;I:=1&nbsp;to&nbsp;(Length(AiChinese)&nbsp;div&nbsp;2)&nbsp;do<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;ch&nbsp;:=&nbsp;Ord(AiChinese[2*I-1]);<br>&nbsp;&nbsp;&nbsp;&nbsp;cl&nbsp;:=&nbsp;Ord(AiChinese[2*I]);<br>&nbsp;&nbsp;&nbsp;&nbsp;S&nbsp;:=S&nbsp;+&nbsp;inttohex((ch&nbsp;shl&nbsp;8)&nbsp;+&nbsp;cl,4);<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;S;<br>end;<br><br>问题:<br>&nbsp;这个函数不完善,请大家给完善完善<br>完善内容包括,我输入的字符串区分数字,字母或其它符号,还要区分符号的半角与全角;<br>也就是说在上面的函数中加上一些判断语句,请问如何写;
 
没人理我,大家都很忙吗?
 
Function&nbsp;ChinesetoGBK(AiChinese:&nbsp;String):&nbsp;String;&nbsp;&nbsp;//把字符串转换成GKB码<br>var<br>&nbsp;&nbsp;CH,&nbsp;CL:&nbsp;Byte;<br>&nbsp;&nbsp;i&nbsp;:&nbsp;Integer;<br>&nbsp;&nbsp;S&nbsp;:&nbsp;string;<br>Begin<br>&nbsp;&nbsp;S:='';<br>&nbsp;&nbsp;i&nbsp;:=&nbsp;1;<br>&nbsp;&nbsp;while&nbsp;i&nbsp;&lt;=&nbsp;Length(AiChinese)&nbsp;do<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;CH&nbsp;:=&nbsp;Ord(AiChinese);<br>&nbsp;&nbsp;&nbsp;&nbsp;Inc(i);<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;ByteType(AiChinese,&nbsp;i&nbsp;-&nbsp;1)&nbsp;=&nbsp;mbLeadByte&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CL&nbsp;:=&nbsp;Ord(AiChinese);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inc(i);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S&nbsp;:=&nbsp;S&nbsp;+&nbsp;IntToHex((ch&nbsp;shl&nbsp;8)&nbsp;+&nbsp;cl,4);<br>&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S&nbsp;:=&nbsp;S&nbsp;+&nbsp;IntToHex(CH,&nbsp;2);<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;S;<br>end;<br>你连自己问题的要求都没表明白,让人家去猜?<br>汉字按原算法转GBK<br>单字节转Ansi码
 
Function&nbsp;ChinesetoGBK(AiChinese:&nbsp;String):&nbsp;String;&nbsp;&nbsp;//把字符串转换成GKB码<br>var<br>&nbsp;&nbsp;CH,&nbsp;CL:&nbsp;Byte;<br>&nbsp;&nbsp;i&nbsp;:&nbsp;Integer;<br>Begin<br>&nbsp;&nbsp;i&nbsp;:=&nbsp;1;<br>&nbsp;&nbsp;while&nbsp;i&nbsp;&lt;=&nbsp;Length(AiChinese)&nbsp;do<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;CH&nbsp;:=&nbsp;Ord(AiChinese);<br>&nbsp;&nbsp;&nbsp;&nbsp;Inc(i);<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;ByteType(AiChinese,&nbsp;i&nbsp;-&nbsp;1)&nbsp;=&nbsp;mbLeadByte&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CL&nbsp;:=&nbsp;Ord(AiChinese);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inc(i);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;Result&nbsp;+&nbsp;IntToHex((CH&nbsp;shl&nbsp;8)&nbsp;+&nbsp;CL,&nbsp;4);<br>&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;Result&nbsp;+&nbsp;IntToHex(CH,&nbsp;2);<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;end;<br>end;
 
我就不信你自己写不出来<br>虽然从For循环改为了while循环,但指导思想是一样的<br>那就是以字节流的方式读出并处理,即流循环
 
接受答案了.
 
后退
顶部