Function DELPHI相当于VisualBasic6函数
我希望在Delphi中为以下用Visual Basic 6编写的函数提供一个等效函数:Function DELPHI相当于VisualBasic6函数,function,delphi,math,Function,Delphi,Math,我希望在Delphi中为以下用Visual Basic 6编写的函数提供一个等效函数: 公共函数ToString(ByVal l为长,n为整数)为字符串 '将长值转换为字符串,左填充chr$(0) 像线一样变暗 作为整数的Dim i s=“” 当l>0时执行此操作 i=l模256 s=Chr$(一)和s l=CLng((l-i)/256) 环 ToString=Right$(字符串$(n,Chr$(0))&s,n) 端函数 我尝试了以下方法,但没有成功: 函数ToString(l:Longin
公共函数ToString(ByVal l为长,n为整数)为字符串
'将长值转换为字符串,左填充chr$(0)
像线一样变暗
作为整数的Dim i
s=“”
当l>0时执行此操作
i=l模256
s=Chr$(一)和s
l=CLng((l-i)/256)
环
ToString=Right$(字符串$(n,Chr$(0))&s,n)
端函数
我尝试了以下方法,但没有成功:
函数ToString(l:Longint;n:Smallint):字符串;
变量
s:字符串;
i:Smallint;
开始
s:='';
当l>0时
开始
i:=l模256;
s:=字符串(Char(i))+s;
l:=圆形((l-i)/256);
结束;
结果:=(StringOfChar(String(Char(0))[1],n)+s,n);
结束;
(假设使用支持UNICODE的Delphi)
您正在使用字符串存储二进制值-不要这样做。字符串用于文本表示,不用于二进制存储。改用字节数组(TBytes)
如果必须(但不需要),则应使用RawByteString,如下所示
FUNCTION IntToBin(Value : LongWord ; CONST Len : BYTE) : RawByteString;
VAR
I : INTEGER;
BEGIN
SetLength(Result,Len);
FillChar(Result[LOW(Result)],Len,0);
I:=HIGH(Result);
WHILE (I>=LOW(Result)) AND (Value<>0) DO BEGIN
Result[I]:=AnsiChar(Value MOD 256);
Value:=Value DIV 256;
DEC(I)
END
END;
函数IntToBin(值:长字;常量Len:BYTE):RawByteString;
变量
I:整数;
开始
设置长度(结果,Len);
FillChar(结果[低(结果)],Len,0);
I:=高(结果);
而(I>=低(结果))和(值0)确实开始
结果[I]:=AnsiChar(值MOD 256);
值:=值DIV 256;
十二月(一)
结束
结束;
inttostr:很简单,但是计算如何。我是一名中级Delphi学习者:(感谢Ken回复我:Function-ToString(1:Integer,n:Integer):String;var S:String;I:Integer-Begin S:='';End;Function-ToString(l:Longint;n:Smallint):String;var s:String;i:Smallint;begin s:'';当l>0时,begin i:=l mod 256;s:=String(Char(i))+s;l:=Round((l-i)/256);end;Result:=(StringOfChar(String(Char(0))[1],n)+s,n);end;不需要将VB代码转换为Delphi,只需使用函数ToString(l:Longint;n:Smallint):String;var fmt:String;begin fmt:=Format('%.%dd',[n]);Result:=Format(fmt,[l]);end;或者,使用,例如:函数ToString(l:Longint;n:Smallint):String;begin Result:=IntToStr(l);如果Length(Result)
谢谢Remy,但它不起作用:“99999999”作为字符串应该转换为õÿ非常感谢HearWare为您提供的巨大帮助。我得到了上面描述的要点。祝您愉快!