首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

新人帮忙看看几行代码,入门级的。解决办法

2012-03-07 
新人帮忙看看几行代码,入门级的。代码段1:functionUpToName(Text:String):StringvarTempText,TempName:str

新人帮忙看看几行代码,入门级的。
代码段1:
function   UpToName(Text:   String):   String;
var
    TempText,TempName:   string;
begin
    TempName:=   ' ';
    TempText:=   ' ';
    TempText:=   ArithmeticTriangle(Text);
    TempText:=   ArithmeticStrUp(TempText);
    //后面两句什么意思,帮忙解释解释。
    SetLength(TempName,Length(TempText)   div   2);
    HexToBin(@TempText[1],   @TempName[1],   Length(TempName));
    //=======================
    Result:=   TempName;
end;


代码段2:
function   IsChineseStr(Text:   String):   Boolean;
var
    Buff   :   WideString;
    Index   :   integer;
    Temp   :   array[1..2]   of   char;
begin
    Result:=   False;
    Buff:=   Text;
    for   Index:=1   to   Length(Buff)   do
    begin
        //后面一句什么意思?帮忙看看
        Move(Buff[Index],   Temp,   2);
        //=========================
        //下面if语句中的#0和#$FF表示什么?
        if   (Temp[2]> #0)   and   (Temp[2] <> #$FF)   then
        begin
            Result:=   True;
            Exit;
        end;
    end;
end;


因为DELPHI打包的DLL在连入C#中有点问题,所以我想把代码直接翻译成C#,上面两行代码注释的地方看不明白,哪位能帮我看看?我delphi没用过,能不能把它翻译成C#?非常感谢!!

[解决办法]

SetLength(TempName,Length(TempText) div 2);
//设定字符串TempName的长度为 字符串TempText长度的1/2 (注意,是整除)
//例如:TempText长度是13,那么Leng(TempText) div 2就等于6 ,就设定TempName长度为6

Move(Buff[Index], Temp, 2);
//从Temp处开始复制2个字节数据到Buff[Index]处开始的2个字节

#0就是 CHR(0),也就是零终止符,也就是NULL,也就是ASCII码表里第一个字符
#$FF就是#255,也就是CHR(255),是ACSII码表里最后一个字符
[解决办法]
HexToBin(@TempText[1], @TempName[1], Length(TempName));
//我以前没用过这个函数,所以花时间看了一下(你也可以Ctrl+鼠标左击HexToBin看一下函数原型)
//好象是把TempText[1]开始的每两个元素的十六进字符,转换为相应的数字,存放到TempName去。
//例如:TempText的内容是 '3 ', '3 ', '4 ', '3 '(注意这是字符表示的十六进制)转换后,TempName的内容为51,67。换算成字符显示那就是 '3 ', 'C '。查一下ASCII码表就会明白它们之间的联系。

热点排行