帮忙翻译一段C#代码,不多

三色 2014-11-03 03:59:09

private static bool StringHasChinese(string strTmp)//这个函数式判断一字符转是否包含汉子
{
Regex r = new Regex(@"[\u4e00-\u9fa5]+");
Match mc = r.Match(strTmp);
if (mc.Length != 0)
{
return true;
}
else
{
return false;
}
}

public static void PrintLabel(string defectname)
{
int pad = 10;
Bitmap bitmap = new Bitmap(355, 45);
Graphics g = Graphics.FromImage(bitmap);
g.FillRectangle(new SolidBrush(Color.White), 0, 0, bitmap.Width, bitmap.Height);
g.DrawString(defectname, new Font("黑体", 28, FontStyle.Bold), new SolidBrush(Color.Black), new PointF(10, 5));
string txt = "^XA^LH" + (pad).ToString() + "," + (pad).ToString() + "^FS";
txt += Convert(bitmap, defectname, 240, 50);
txt += "^XZ";
//Write(txt);发送到LPT并口的
}

public static string Convert(Bitmap bm,string txt, int left, int top)
{
try
{
int b = 0;
long n = 0;
long clr;
StringBuilder sb = new StringBuilder();
sb.Append("~DGR:ZONE.GRF,");
int w = (bm.Size.Width / 8 + ((bm.Size.Width % 8 == 0) ? 0 : 1)) * bm.Size.Height;
int h = bm.Size.Width / 8 + ((bm.Size.Width % 8 == 0) ? 0 : 1);
//string s;

sb.Append(w.ToString().PadLeft(5, '0') + "," + h.ToString().PadLeft(3, '0') + ",\n");
using (Bitmap bmp = new Bitmap(bm.Size.Width, bm.Size.Height))
{
for (int y = 0; y < bm.Size.Height; y++)
{
for (int x = 0; x < bm.Size.Width; x++)
{
b = b * 2;
clr = bm.GetPixel(x, y).ToArgb();
string s = clr.ToString("X");

if (s.Substring(s.Length - 6, 6).CompareTo("BBBBBB") < 0)
{
bmp.SetPixel(x, y, bm.GetPixel(x, y));
b++;
}
n++;
if (x == (bm.Size.Width - 1))
{
if (n < 8)
{
b = b * (2 ^ (8 - (int)n));

sb.Append(b.ToString("X").PadLeft(2, '0'));
b = 0;
n = 0;
}
}
if (n >= 8)
{
sb.Append(b.ToString("X").PadLeft(2, '0'));
b = 0;
n = 0;
}
}
}
sb.Append("^FO" + left.ToString() + "," + top.ToString() + "^XGR:ZONE.GRF^FS");
}
return sb.ToString();
}
catch
{
return txt;
}
}




以上3个函数,我在C#中都正常运行的,现在要移植到VB中,请问该怎么写?
明眼人应该能看出,这是用于Zebra打印机的,打印中文的方法。
...全文
1934 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
pipi20151001 2015-09-04
  • 打赏
  • 举报
回复
楼主要实现什么?应该有个整体思路,因为两种语言之间差别还是很大的,特别是C系列的,与BASIC语言之间,硬生生的要给你翻译也可以翻,但是有些很难做到,比如C#里所定义的系统类,在VB里这种不存在,那就难以翻了。自己得重新写了。
赵4老师 2014-11-04
  • 打赏
  • 举报
回复
不要做A语言代码修改为B语言代码的无用功。 也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。 只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。 即可很方便地让A、B两种语言之间协调工作。 比如: A将请求数据写到文件a.txt,写完后改名为aa.txt B发现aa.txt存在时,读取其内容,调用相应功能,将结果写到文件b.txt,写完后删除aa.txt,改名为bb.txt A发现bb.txt存在时,读取其内容,读完后删除bb.txt 以上A可以替换为任何一种开发语言或开发环境,B可以替换为任何一种与A不同的开发语言或开发环境。 除非A或B不支持判断文件是否存在、文件读写和文件更名。 但是谁又能举出不支持判断文件是否存在、文件读写和文件更名的开发语言或开发环境呢? 共享临时文本文件这种进程之间的通讯方法相比其它方法的优点有很多,下面仅列出我现在能想到的: ·进程之间松耦合 ·进程可在同一台机器上,也可跨机,跨操作系统,跨硬件平台,甚至跨国。 ·方便调试和监视,只需让第三方或人工查看该临时文本文件即可。 ·方便在线开关服务,只需删除或创建该临时文本文件即可。 ·方便实现分布式和负载均衡。 ·方便队列化提供服务,而且几乎不可能发生队列满的情况(除非硬盘空间满) ·……

809

社区成员

发帖
与我相关
我的任务
社区描述
VB 多媒体
社区管理员
  • 多媒体
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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