请问各位大侠:如何编一函数将字符转变为字节?十分感谢!!!急!急!急!(50分)

  • 主题发起人 主题发起人 danliyou
  • 开始时间 开始时间
D

danliyou

Unregistered / Unconfirmed
GUEST, unregistred user!
谢谢各位!!!
 
是不是这个?
procedure StrToASCII;
var
User: string;
i,j: Integer;
begin
User := '测试123';
for i:=0 to Length(User)-1 do
begin
j:= ord((pchar(user) + i)^);
end;
end;
 
不是的,请你再仔细的看一看。
一个字节是两个字符,能不能给我编个函数呀?
十分感谢。
 
VC代码如下:
void StrToByte(int InStrLenght, PCHAR InStr,PBYTE *OutByte)
{
int Len=InStrLenght;
char* string=InStr;
PBYTE Bytestr=new BYTE[Len/2+1];
for(int j=0;j<(Len/2);j++)
{
string[j*2]>='a'?string[j*2]-=('a'-10):string[j*2]-='0';
string[j*2+1]>='a'?string[j*2+1]-=('a'-10):string[j*2+1]-='0';
Bytestr[j]=(string[j*2]<<4)+ string[j*2+1];
}
*OutByte= Bytestr;
}
谁能帮助我转换为delphi.十分感谢!!!!
 
那是这个
function AnsiToUnicode(Ansi: string):string;
var
s:string;
i:integer;
j,k:string[2];
a:array [1..1000] of char;
begin
s:='';
StringToWideChar(Ansi,@(a[1]),500);
i:=1;
while ((a<>#0) or (a[i+1]<>#0)) do begin
j:=IntToHex(Integer(a),2);
k:=IntToHex(Integer(a[i+1]),2);
s:=s+k+j;
i:=i+2;
end;
Result:=s;
end;
 
楼上的那位大侠,你好,你转换的还是不符合我的要求:
你能不能把我那个VC程序转换为delphi呀?
谢谢!我不会转换呀。
 
简单的例子,没有特别调试符合你的要求,将就一些吧。[:)]
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
user:array [0..20]of char;
S: String;
begin
user:='测试';
for i:=0 to length(user)-1 do
S:=S+IntToHex(ord(user),2);
ShowMessage(S);
end
{B2E2CAD4}
 
接受答案了.
 
后退
顶部