比如:var s:string;
s:='测试';
strtoasc;//汉字字符串转化为asc
asctostr;//asc转化为汉字字符串 showmessage();//打印出asc码或是字符串
s:='测试';
strtoasc;//汉字字符串转化为asc
asctostr;//asc转化为汉字字符串 showmessage();//打印出asc码或是字符串
解决方案 »
- 如何创建父,子窗体???????
- 关于备份恢复的问题,怪事。请指教
- 数据表字段植插入 随机(函数)值问题?
- delphi里怎么加密密码
- 我是学校的系统管理员,我打算编一个软件,大家能帮我吗?
- 请问为什么我安装的DELPH7没有 RZ的组件
- 100分求解:从TComponent派生出的组件里,如果我想实现类似于Application.ProcessMessages的功能,应该用什么函数?
- 我刚装上XPMenu控件,觉得不爽,怎么卸掉它,有谁知道金山词霸2002具体是哪一套XPMenu做的吗?请告诉我详细下载地址?
- 小问题一个:两个8,两个3.加减乘除等于24(内容无).用什么算法?
- installshield高手请进
- ***请问如何控制在WebBrowser中PPT文件 ****
- 网络游戏外挂
chr,ord就行了
========================================
抄一段给你:
unit BinHexTools;interface
function HexToBin(HexNr : string): string; //把十六进制字符串转换为二进制字符串
function HexCharToInt(HexToken : char):Integer; //转换一个十六进制字符为整数
function HexCharToBin(HexToken : char): string;//转换一个十六进制字符为二进制字符串
function pow(base, power: integer): integer;//指数函数
function BinStrToInt(BinStr : string) : integer;//把二进制字符串转换为整数
function DecodeSMS7Bit(PDU : string):string;// 解码一个7-bit SMS (GSM 03.38) 为ASCII码
function ReverseStr(SourceStr : string) : string; //反转一个字符串implementation
uses sysutils, dialogs; function HexCharToInt(HexToken : char):Integer;
begin
{if HexToken>#97 then HexToken:=Chr(Ord(HexToken)-32);
{ use lowercase aswell } Result:=0;
if (HexToken>#47) and (HexToken<#58) then { chars 0....9 }
Result:=Ord(HexToken)-48
else if (HexToken>#64) and (HexToken<#71) then { chars A....F }
Result:=Ord(HexToken)-65 + 10;
end;function HexCharToBin(HexToken : char): string;
var DivLeft : integer;
begin
DivLeft:=HexCharToInt(HexToken); { first HEX->BIN }
Result:='';
{ Use reverse dividing }
repeat { Trick; divide by 2 }
if odd(DivLeft) then { result = odd ? then bit = 1 }
Result:='1'+Result { result = even ? then bit = 0 }
else
Result:='0'+Result;
DivLeft:=DivLeft div 2; { keep dividing till 0 left and length = 4 }
until (DivLeft=0) and (length(Result)=4); { 1 token = nibble = 4 bits }
end;function HexToBin(HexNr : string): string;
{ only stringsize is limit of binnr }
var Counter : integer;
begin
Result:=''; for Counter:=1 to length(HexNr) do
Result:=Result+HexCharToBin(HexNr[Counter]);
end;function pow(base, power: integer): integer;
var counter : integer;
begin
Result:=1; for counter:=1 to power do
Result:=Result*base;
end; function BinStrToInt(BinStr : string) : integer;
var counter : integer;
begin
if length(BinStr)>16 then
raise ERangeError.Create(#13+BinStr+#13+
'is not within the valid range of a 16 bit binary.'+#13); Result:=0; for counter:=1 to length(BinStr) do
if BinStr[Counter]='1' then
Result:=Result+pow(2,length(BinStr)-counter);
end; function DecodeSMS7Bit(PDU : string):string;
var OctetStr : string;
OctetBin : string;
Charbin : string;
PrevOctet: string;
Counter : integer;
Counter2 : integer;
begin
PrevOctet:='';
Result:=''; for Counter:=1 to length(PDU) do
begin
if length(PrevOctet)>=7 then { if 7 Bit overflow on previous }
begin
if BinStrToInt(PrevOctet)<>0 then
Result:=Result+Chr(BinStrToInt(PrevOctet))
else Result:=Result+' '; PrevOctet:='';
end; if Odd(Counter) then { only take two nibbles at a time }
begin
OctetStr:=Copy(PDU,Counter,2);
OctetBin:=HexToBin(OctetStr); Charbin:='';
for Counter2:=1 to length(PrevOctet) do
Charbin:=Charbin+PrevOctet[Counter2]; for Counter2:=1 to 7-length(PrevOctet) do
Charbin:=OctetBin[8-Counter2+1]+Charbin; if BinStrToInt(Charbin)<>0 then Result:=Result+Chr(BinStrToInt(CharBin))
else Result:=Result+' '; PrevOctet:=Copy(OctetBin,1,length(PrevOctet)+1);
end;
end;
end; function ReverseStr(SourceStr : string) : string;
var Counter : integer;
begin
Result:=''; for Counter:=1 to length(SourceStr) do
Result:=SourceStr[Counter]+Result;
end; end.
===========================================================================
function CharToString(Buf:pchar;length:integer):string;//char转变成string
var
s:string;
begin
setlength(s,length);
move(Buf[0],s[1],length); //不能用strcopy
result:=s;
end;
{汉字和ascll码互转函数}
function HexToStr(const sMsg:string;var acMsg:array of char):string;
var
iLen:integer;
s:string;
begin
fillchar(acmsg,sizeof(acMsg),0);//把acMsg设置为0
iLen:=length(sMsg);
HexToBin(pchar(sMsg),acMsg,iLen);
s:=CharToString(acMsg,length(acMsg));
result:=s;
end;function StrToHex(const sMsg:string;var acMsg:array of char):string;
var
iLen:integer;
s:string;
begin
fillchar(acMsg,sizeof(acMsg),0);//把acMsg设置为0
iLen:=length(sMsg);
bintohex(pchar(sMsg),acMsg,iLen);//16进制转化为2进制
s:=CharToString(acMsg,length(acMsg));
result:=s;
end;