有懂C#的VB大虾没,帮忙把这个方法转成C#下吧,小女万分感谢.

zouchun_donet 2012-05-04 12:22:13
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)
...全文
111 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
zouchun_donet 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 的回复:]
C# code


public static string getPYM(string hz_cluster)
{
int length_string = 0;
string pym_string = string.Empty, pym = string.Empty;
char char_……
[/Quote]
结贴了,这是最终经过测试的代码。
zouchun_donet 2012-05-11
  • 打赏
  • 举报
回复
 
public static string getPYM(string hz_cluster)
{
int length_string = 0;
string pym_string = string.Empty, pym = string.Empty;
char char_string = ' ';
// 取得字符串长度
length_string = hz_cluster.Length;
// 设定初始值
int i = 0;
int asc_char;
while (i < length_string)
{
char_string = hz_cluster.Substring(i, 1)[0];
asc_char = Convert.ToInt32(char_string);
if ((asc_char > 64) && (asc_char < 91))// 大写字母
{
pym = char_string.ToString();
}
else if ((asc_char > 96) && (asc_char < 123)) // 小写字母
{
pym = char_string.ToString();
}
else if ((asc_char > 47) && (asc_char < 58)) // 数字
{
pym = char_string.ToString();
}
else if (asc_char > 127) // 汉字
{
pym = GetOnePYM(hz_cluster.Substring(i, 1));
}
else
{// 其它字符
pym = "*";
}
i += 1;
pym_string = pym_string + pym;
}
// 以大写方式返回
return pym_string.ToUpper();
}


public static string GetOnePYM(string hz)
{
return DBHelper.ExecuteScalar("select isnull(pym,'*') from sys_hzk where hz=@hz"
, new SqlParameter[] { new SqlParameter("@hz", hz) }).ToString();
}
沐NeMo 2012-05-11
  • 打赏
  • 举报
回复
搞定了啊。恭喜!
mm4 2012-05-06
  • 打赏
  • 举报
回复
http://www.developerfusion.com/tools/convert/vb-to-csharp/
cobra_chen 2012-05-04
  • 打赏
  • 举报
回复
转换首先要知道这个函数或方法是做什么的。
然后再读懂大概的流程。
最后查找C#对于VB.net的函数,再调用。
cobra_chen 2012-05-04
  • 打赏
  • 举报
回复
楼主代码没贴全,有些变量不知道是什么。
zouchun_donet 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
代码粘贴民工。
[/Quote]


(⊙o⊙)… 又被鄙视了~
那段代码还有待改进,测试OK后再贴上来.
沐NeMo 2012-05-04
  • 打赏
  • 举报
回复
代码粘贴民工。
zouchun_donet 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
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 ……
[/Quote]



谢谢大虾~~~爱死你了.我搬过去试试。。
  • 打赏
  • 举报
回复

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);
}


  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

C# code

{

// 取得字符串长度
length_string……
[/Quote]

修改下
long length_string = 0, step_string = 0, i;//asc_char = 0,
string pym_string = string.empty, pym = string.empty;
char char_string = "";



  • 打赏
  • 举报
回复

{
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);
}



zouchun_donet 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
而且也没有通过Return返回函数值的
[/Quote]


我去问问给我代码的银...
zouchun_donet 2012-05-04
  • 打赏
  • 举报
回复
好吧,也只能这样了~
cpio 2012-05-04
  • 打赏
  • 举报
回复
而且也没有通过Return返回函数值的
cpio 2012-05-04
  • 打赏
  • 举报
回复
怎么感觉这个VB代码不地道呢,VB定义变量是Dim length_stringas long,则不是long length_string
cobra_chen 2012-05-04
  • 打赏
  • 举报
回复
只给你这样的代码?
另外这个代码似乎不是vb的代码。
似乎是C#的?
没有输入,但是最后的时候却有输出?
还是说,这个只是伪代码?
另外,不知道主流程,转换会出问题的。
楼主还是请教一下给你代码的人吧。
至少可以请教一下他一些基本的流程。
这个知道了,修改转换也会方便一些。

[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:
转换首先要知道这个函数或方法是做什么的。
然后再读懂大概的流程。
最后查找C#对于VB.net的函数,再调用。



这是上头给的代码,就这些了.

是生成拼音码的代码.
[/Quote]
zouchun_donet 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
转换首先要知道这个函数或方法是做什么的。
然后再读懂大概的流程。
最后查找C#对于VB.net的函数,再调用。
[/Quote]


这是上头给的代码,就这些了.

是生成拼音码的代码.

16,556

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧