繁体   English   中英

将VB6字符转换为C#字符串

[英]Translating VB6 chars to C# strings

我想将一个旧的VB6项目升级到较新的技术,并且下面有这些值,并且不知道如何转换它们。

Chr(&H31) & Chr(&H1) & Chr(&H50) & Chr(&H31) & Chr(&H17)

所以我的第一个问题是如何识别这些? 是十六进制值还是其他? 我似乎在ASCII表中找不到它们。 “ H”代表什么?

其次,如何从中制作ac#字符串?

Chr将字符代码转换为字符,在C#中,您可以进行Chr转换:

char c1 = (char)0x31;

(也更改为使用C#的十六进制文字而不是VB6的文字。)

但是在构建字符串时,使用转义会更容易:

string s1 = "\x31\x01\x50\x31\x16";

由于您的“字符”包含特殊/控制/不可打印的字符( 1<SOH>P1<ETB> ),我希望这实际上是非字符串数据,因此不应存储为字符串。

根据实际的期望用法,使用字节数组会更好:

byte[] data = new byte[] { 0x31, 0x01, 0x50, 0x31, 0x17 }

如果您无法识别函数参数并且仍然拥有相同的结果,则始终可以从C#应用程序中调用本机VB函数。

  • 您只需要添加引用Microsoft.VisualBasic
  • 调用函数Strings.Chr

您对结果更有信心:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM