首页 新闻 会员 周边

跨求高手把delphi代码翻译为C#代码

0
悬赏园豆:20 [已关闭问题]

function ChName(EnName: string): string;
var
  ChLen, pos, len, blen, w, w1, i: integer;
  s: string;
begin
  result := trim(EnName);
  len := length(EnName) - 1;
  if (len < 1) or (EnName[1] <> 'V') then
    exit;
  Delete(EnName, 1, 1);
  blen := 0;
  pos := 1;
  w := 0;
  s := '';
  while (pos <= len) or (blen > 7) do
  begin
    while (blen < 8) and (pos <= len) do
    begin
      w1 := ord(EnName[pos]);
      if w1 >= ord('A') then
        w1 := w1 - ord('A')
      else
        w1 := w1 - ord('0') + 26;
      w := (w1 shl blen) or w;
      inc(pos);
      inc(blen, 5);
    end;
    w1 := w and $FF;
    s := chr(w1) + s;
    w := w shr 8;
    dec(blen, 8);
  end;
  Result := s;
end;

奋雨的主页 奋雨 | 初学一级 | 园豆:180
提问于:2010-03-07 16:54
< >
分享
其他回答(1)
0

 public class test
    {
        public string ChName(string EnName)
        {
            int ChLen, pos, len, blen, w, w1, i;
            string s;
            string result=EnName.Trim();
            len = EnName.Length - 1;
            if (len<1  || EnName.Substring(0,1)!="V")
            {
                return result;
            }
            EnName = EnName.Substring(1);
            blen = 0; pos = 1; w = 0; s = "";
            while (blen < 8 && pos <= len)
            {
                w1 =int.Parse(EnName[pos].ToString());
                if (w1>=int.Parse("A")
                {
                    w1-=int.Parse("A");
                }
                else
                {
                    w1=w1-int.Parse("o")+26;
                }
                w=(w1<<blen) | w;
                pos++;
                blen+=5;
            }
            w1=w & Convert.ToInt32("FF", 16);
            s+=w1.ToString();
            w=w >> 8;
            blen-=8;
            result=s;
            return result;
        }
    }

xgdw | 园豆:4 (初学一级) | 2010-03-08 01:13
你的答案我测试过了,不行,我要实现的功能是,比如: V15QFOGX34FOBL转换后对应的汉字为:案卷题名 因为interbase不支持中文所以把中文转为了英文,现在又要转回,但源代码是用delphi写的,没学过
支持(0) 反对(0) 奋雨 | 园豆:180 (初学一级) | 2010-03-09 14:54
你不单是delphi没学过,你其实连C#都没学过,自己调试一下哪里字符没有转换过来不就可以了。就几个delphi函数Google一下不全都知道什么意思。
支持(0) 反对(0) xgdw | 园豆:4 (初学一级) | 2010-03-13 18:47
0

如果能看懂,翻译应该不时什么难事。

生鱼片 | 园豆:5757 (大侠五级) | 2010-03-08 17:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册