冰
冰力不足
Unregistered / Unconfirmed
GUEST, unregistred user!
有聊天室ID 格式是:
张三:abc你好 1v
李四:jhu
王五:f j k 汗照顾
现要把这些ID格式化
1.凡是空格的变为'+'
2.凡是汉字的转为十六进制 如 '古'字变为 %B9%C5
3.凡是英文的不变 a依然是a
即:
abc你好 1v 格式后变为: abc%C4%E3%BA%C3+1v
jhu 格式后变为: jhu
f j k 汗照顾 格式后变为: f+j+k+%BA%B9%D5%D5%B9%CB
求编程写一函数 实现对上述类型ID的格式化处理.
//-----------
提供几个函数帮您思考
//字符串转为十六进制
function StrToHexStr(const s: string): string;
var
i: Integer;
begin
result:='';
for i:=1 to length(s) do
result:=result+'%'+format('%2X',[ord(s)]);
end;
{用ByteType,
比如:
ByteType('你好haha吗',1) = mbLeadByte//是第一个字符
ByteType('你好haha吗',2) = mbTrailByte//是第二个字符
ByteType('你好haha吗',5) = mbSingleByte//不是中文字符}
//提取汉字
function GetChineseStr(Str: String): String;
var
S:widestring;
i:integer;
begin
Result:='';
S:=Str;
for i:=1 to length(S) do
begin
if ord(S)>127 then
begin
Result:=Result+S;
end;
end;
end;
张三:abc你好 1v
李四:jhu
王五:f j k 汗照顾
现要把这些ID格式化
1.凡是空格的变为'+'
2.凡是汉字的转为十六进制 如 '古'字变为 %B9%C5
3.凡是英文的不变 a依然是a
即:
abc你好 1v 格式后变为: abc%C4%E3%BA%C3+1v
jhu 格式后变为: jhu
f j k 汗照顾 格式后变为: f+j+k+%BA%B9%D5%D5%B9%CB
求编程写一函数 实现对上述类型ID的格式化处理.
//-----------
提供几个函数帮您思考
//字符串转为十六进制
function StrToHexStr(const s: string): string;
var
i: Integer;
begin
result:='';
for i:=1 to length(s) do
result:=result+'%'+format('%2X',[ord(s)]);
end;
{用ByteType,
比如:
ByteType('你好haha吗',1) = mbLeadByte//是第一个字符
ByteType('你好haha吗',2) = mbTrailByte//是第二个字符
ByteType('你好haha吗',5) = mbSingleByte//不是中文字符}
//提取汉字
function GetChineseStr(Str: String): String;
var
S:widestring;
i:integer;
begin
Result:='';
S:=Str;
for i:=1 to length(S) do
begin
if ord(S)>127 then
begin
Result:=Result+S;
end;
end;
end;