急求一关于汉字的繁体与简体的转换算法 各位兄台谁能提供给小弟一个关于汉字的繁体与简体的转换算法,小弟感激不尽 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 unit Unit2;interfaceuses SysUtils, Windows; function Big5StringToGBString(Src : string) : string;implementationfunction StrConv(pszSrc : PChar; cpSrc : UINT; pszDest : PChar; cbDest :Longint; cpDest : UINT) : Longint;var buf : PWideChar; cwLen : LongInt;begin cwLen := MultiByteToWideChar(cpSrc, 0, pszSrc, -1, nil, 0); GetMem(buf, (cwLen+1) * SizeOf(WideChar)); ZeroMemory(buf, (cwLen+1) * SizeOf(WideChar)); MultiByteToWideChar(cpSrc, 0, pszSrc, StrLen(pszSrc), buf, cwLen+1); Result := WideCharToMultiByte(cpDest, 0, buf, -1, pszDest, cbDest, nil, nil); FreeMem(buf);end;function StringConv(const Src : string; cpSrc, cpDest : UINT) : string;var buf : PChar; len : Longint;begin len := StrConv(PChar(Src), cpSrc, nil, 0, cpDest); GetMem(buf, len); ZeroMemory(buf, len); StrConv(PChar(Src), cpSrc, buf, len, cpDest); Result := string(buf); FreeMem(buf);end;function CHTStringToCHSString(Src : string) : string;var buf : PChar; len : Integer;begin len := LCMapString($804, // LCID_CHINESE_SIMPLIFIED LCMAP_SIMPLIFIED_CHINESE, PChar(Src), -1, nil, 0); GetMem(buf, len); ZeroMemory(buf, len); LCMapString($804, // LCID_CHINESE_SIMPLIFIED LCMAP_SIMPLIFIED_CHINESE, PChar(Src), -1, buf, len); Result := string(buf); FreeMem(buf);end;function CHSStringToCHTString(Src : string) : string;var buf : PChar; len : Integer;begin len := LCMapString($404, // LCID_CHINESE_SIMPLIFIED LCMAP_TRADITIONAL_CHINESE, PChar(Src), -1, nil, 0); GetMem(buf, len); ZeroMemory(buf, len); LCMapString($404, // LCID_CHINESE_SIMPLIFIED LCMAP_TRADITIONAL_CHINESE, PChar(Src), -1, buf, len); Result := string(buf); FreeMem(buf);end;function CHTToCHS(pszSrc, pszDest : PChar; cbDest : Longint) : Longint;begin Result := LCMapString($804, // LCID_CHINESE_SIMPLIFIED LCMAP_SIMPLIFIED_CHINESE, pszSrc, -1, pszDest, cbDest);end;function CHSToCHT(pszSrc, pszDest : PChar; cbDest : Longint) : Longint;begin Result := LCMapString($404, // LCID_CHINESE_SIMPLIFIED LCMAP_TRADITIONAL_CHINESE, pszSrc, -1, pszDest, cbDest);end;function Big5StringToGBString(Src : string) : string;begin Result := CHTStringToCHSString(StringConv(Src, 950, 936));end;function Big5ToGB(pszSrc, pszDest : PChar; cbDest : Longint) : Longint;var buf : PChar; len : Integer;begin len := StrLen(pszSrc)+1; GetMem(buf, len*2); ZeroMemory(buf, len*2); StrConv(pszSrc, 950, buf, 936, len*2); Result := CHTToCHS(buf, pszDest, cbDest); FreeMem(buf);end;function GBStringToBig5String(Src : string) : string;begin Result := CHSStringToCHTString(StringConv(Src, 936, 950));end;function GBToBig5(pszSrc, pszDest : PChar; cbDest : Longint) : Longint;var buf : PChar; len : Integer;begin len := StrLen(pszSrc)+1; GetMem(buf, len*2); ZeroMemory(buf, len*2); StrConv(pszSrc, 936, buf, 950, len*2); Result := CHSToCHT(buf, pszDest, cbDest); FreeMem(buf);end;end. 盒子中有两个演示程序,你去下载来看看可不可以,如果可以记得要给分哦:http://www.delphibox.com/article.asp?articleid=823http://www.delphibox.com/article.asp?articleid=79另注:需要注册才能下载的,不知你有没有,如果没有就给我邮箱,我给你寄也行。 记住可以你说过的话哦,五百分 发给我嘛,我难得去下载,[email protected] GB2312BIG5不行,但是另外一个是可以的,我不能给500分,等我把另外一个调试成功后再给你 同一个Label或Edit内显示不同字号 word导入cxrichedit 有图片等 Delphi7中使用DsoFramer时包错: Invalid variant Type,求助 一个关于savedialog的小问题,请高手指导 我要做一个软件演示盘,需要一个录屏软件,想大家寻求一个好的录屏软件! 我这样的学历,在北京或上海能找到工作吗? 有没有DELPHI FOR PHp 资料? 接口引用和对象的兼容性问题,想不明白…… 如何等到一个外部程序运行后再将它关闭? 如何在DBGRID中显示备注字段(ACCESS数据库) 向Delphi版主提几个建议, 0分 DBGrid刷新不稳定问题
uses
SysUtils, Windows;
function Big5StringToGBString(Src : string) : string;
implementation
function StrConv(pszSrc : PChar; cpSrc : UINT; pszDest : PChar; cbDest :
Longint; cpDest : UINT) : Longint;
var
buf : PWideChar;
cwLen : LongInt;
begin
cwLen := MultiByteToWideChar(cpSrc,
0,
pszSrc,
-1,
nil,
0);
GetMem(buf, (cwLen+1) * SizeOf(WideChar));
ZeroMemory(buf, (cwLen+1) * SizeOf(WideChar));
MultiByteToWideChar(cpSrc,
0,
pszSrc,
StrLen(pszSrc),
buf,
cwLen+1);
Result := WideCharToMultiByte(cpDest,
0,
buf,
-1,
pszDest,
cbDest,
nil,
nil);
FreeMem(buf);
end;function StringConv(const Src : string; cpSrc, cpDest : UINT) : string;
var
buf : PChar;
len : Longint;
begin
len := StrConv(PChar(Src), cpSrc, nil, 0, cpDest);
GetMem(buf, len);
ZeroMemory(buf, len);
StrConv(PChar(Src), cpSrc, buf, len, cpDest);
Result := string(buf);
FreeMem(buf);
end;function CHTStringToCHSString(Src : string) : string;
var
buf : PChar;
len : Integer;
begin
len := LCMapString($804, // LCID_CHINESE_SIMPLIFIED
LCMAP_SIMPLIFIED_CHINESE,
PChar(Src),
-1,
nil,
0);
GetMem(buf, len);
ZeroMemory(buf, len);
LCMapString($804, // LCID_CHINESE_SIMPLIFIED
LCMAP_SIMPLIFIED_CHINESE,
PChar(Src),
-1,
buf,
len);
Result := string(buf);
FreeMem(buf);
end;function CHSStringToCHTString(Src : string) : string;
var
buf : PChar;
len : Integer;
begin
len := LCMapString($404, // LCID_CHINESE_SIMPLIFIED
LCMAP_TRADITIONAL_CHINESE,
PChar(Src),
-1,
nil,
0);
GetMem(buf, len);
ZeroMemory(buf, len);
LCMapString($404, // LCID_CHINESE_SIMPLIFIED
LCMAP_TRADITIONAL_CHINESE,
PChar(Src),
-1,
buf,
len);
Result := string(buf);
FreeMem(buf);
end;function CHTToCHS(pszSrc, pszDest : PChar; cbDest : Longint) : Longint;
begin
Result := LCMapString($804, // LCID_CHINESE_SIMPLIFIED
LCMAP_SIMPLIFIED_CHINESE,
pszSrc,
-1,
pszDest,
cbDest);
end;function CHSToCHT(pszSrc, pszDest : PChar; cbDest : Longint) : Longint;
begin
Result := LCMapString($404, // LCID_CHINESE_SIMPLIFIED
LCMAP_TRADITIONAL_CHINESE,
pszSrc,
-1,
pszDest,
cbDest);
end;function Big5StringToGBString(Src : string) : string;
begin
Result := CHTStringToCHSString(StringConv(Src, 950, 936));
end;function Big5ToGB(pszSrc, pszDest : PChar; cbDest : Longint) : Longint;
var
buf : PChar;
len : Integer;
begin
len := StrLen(pszSrc)+1;
GetMem(buf, len*2);
ZeroMemory(buf, len*2);
StrConv(pszSrc, 950, buf, 936, len*2);
Result := CHTToCHS(buf, pszDest, cbDest);
FreeMem(buf);
end;function GBStringToBig5String(Src : string) : string;
begin
Result := CHSStringToCHTString(StringConv(Src, 936, 950));
end;function GBToBig5(pszSrc, pszDest : PChar; cbDest : Longint) : Longint;
var
buf : PChar;
len : Integer;
begin
len := StrLen(pszSrc)+1;
GetMem(buf, len*2);
ZeroMemory(buf, len*2);
StrConv(pszSrc, 936, buf, 950, len*2);
Result := CHSToCHT(buf, pszDest, cbDest);
FreeMem(buf);
end;end.
http://www.delphibox.com/article.asp?articleid=823
http://www.delphibox.com/article.asp?articleid=79另注:需要注册才能下载的,不知你有没有,如果没有就给我邮箱,我给你寄也行。
记住可以你说过的话哦,五百分