读书人

有懂C#的VB没帮忙把这个方法转成C#下

发布时间: 2012-05-12 15:39:31 作者: rapoo

有懂C#的VB大虾没,帮忙把这个方法转成C#下吧,小女万分感谢.
long length_string,step_string,asc_char,i
string pym_string,pym,char_string
// 取得字符串长度
length_string = len(hz_cluster)
// 设定初始值
i = 1
pym_string = ' '
do until i > length_string
char_string = mid(hz_cluster,i,1)
asc_char = asc(char_string)
// 设定默认步长
step_string = 1
if asc_char > 64 and asc_char < 91 then // 大写字母
pym = char_string
elseif asc_char > 96 and asc_char < 123 then // 小写字母
pym = char_string
elseif asc_char > 47 and asc_char < 58 then // 数字
pym = char_string
elseif asc_char > 127 then // 汉字,步长为2
char_string = mid(hz_cluster,i,2)
select pym into :pym from sys_hzk where hz=:char_string;
If Sqlca.sqlcode <> 0 Then pym = '* '
pym = mid(pym,1,1)
step_string = 2
else // 其它字符
pym = ' '
end if
i = i + step_string
pym_string = pym_string + pym
loop
// 以小写方式返回
return left(upper(pym_string),12)

[解决办法]

C# code
{    long  length_string = 0, step_string = 0,  i;//asc_char = 0,    string  pym_string = string.empty, pym = string.empty;    char char_string = "";    //   取得字符串长度      length_string = hz_cluster.Length;    //   设定初始值    i = 1;    //pym_string   =   ' ' 上面已赋初值    while(i > length_string)    {        char_string = hz_cluster.Substring(i,1);        //asc_char = asc(char_string)        //   设定默认步长        step_string   =   1        if ((char_string > 64) && (char_string < 91))//   大写字母        {            pym = char_string;        }           else if ((char_string > 96) && (char_string < 123))              //   小写字母        {            pym = char_string;        }        else if ((char_string > 47) && (char_string < 58))              //   数字        {            pym = char_string;        }        else if (char_string > 127)                             //   汉字,步长为2        {            char_string = hz_cluster.Substring(i,2);           ////////////////////////////////////////////////////////////           /* select pym into :pym from sys_hzk where hz=:char_string;*/           //这句是从数据库查询?            if(Sqlca.sqlcode <> 0)             {                pym = "*";            }            pym = pym.Substring(1,1);            step_string   =   2        }               else        {//   其它字符            pym = "";        }        i += step_string;        pym_string = pym_string + pym;    }    //   以小写方式返回    return  pym_string.ToLower().Substring(0,12);} 

读书人网 >VB Dotnet

热点推荐