有没有办法以编程方式将 VB6 格式字符串转换为 .NET 格式字符串?
- 有谁知道 VB6 格式字符串的好参考吗?
- 有谁知道从 VB6 格式字符串到 .NET 字符串的转换器吗?
我正在致力于将大型 VB6 代码库移植到 .NET。它是一个以数据库为中心的软件,数据库本身保存 VB6 格式字符串,稍后加载并用于显示数据库中的其他数据。
我的问题,就像这篇文章一样,是如何移植它。然而,为该问题选择的答案不足以满足我的需要。我对依赖专门为向后兼容而专门设计的库感到不舒服,我是专门聘请来移植的。
- Does anyone know of a good reference for VB6 format-strings?
- Does anyone know of a converter from VB6 formatting strings to .NET strings?
I'm working on porting a large VB6 code base to .NET. It is a database centric piece of software, and the database itself holds VB6 format-strings which are later loaded and used to display other data in the database.
My question, like this article, is how to port this. However the answer chosen for that question isn't adequate for my needs. I'm uncomfortable relying on libraries specifically designed for backwards compatibility with a language I've been specifically hired to port away.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
VB6 使用的格式化例程实际上内置于操作系统中。 Oleaut32.dll,VarFormat() 函数。考虑到有多少代码依赖它,它已经存在了 15 年,并且将永远存在。尝试将格式化字符串转换为 .NET 复合格式化字符串是一项无望的任务。只需使用操作系统功能即可。
这是一个使用链接线程中的示例执行此操作的示例程序:
The formatting routine that VB6 uses is actually built into the operating system. Oleaut32.dll, the VarFormat() function. It's been around for 15 years and will be around for ever, considering how much code relies on it. Trying to translate the formatting strings to a .NET composite formatting string is a hopeless task. Just use the OS function.
Here's a sample program that does this, using the examples from the linked thread:
您最好的选择可能是自己编写转换库,但这可能不是您希望得到的答案。
Your best bet might be to write the conversion library yourself, but that probably wasn't the answer you had hoped to get.
下面是一些 F# 代码,可将大多数预定义和自定义 VB6 样式的数字和日期格式字符串转换为适合
String.Format
的内容。当然,它可以很容易地从 C# 或 VB 调用。Here's some F# code that translates the majority of pre-defined and custom VB6-style numeric and date format strings to something suitable for
String.Format
. It's easily called from C# or VB of course.