使用 FileHelpers 进行输出格式化

发布于 2024-11-09 18:49:05 字数 202 浏览 5 评论 0原文

我正在使用 FileHelpers 创建固定长度的文件。在我的模型中,我有一个 double 需要以 0000.00 格式输出。无论如何,我可以使用 FileHelpers 本身指定它,还是需要将模型更改为字符串并在创建模型时执行 .ToString(my_format) ?

I'm using FileHelpers to create fixed length files. In my model I have a double which needs to be outputted in a 0000.00 format. Is there anyway I can specify this with FileHelpers itself or do I need to change my model to a string and do a .ToString(my_format) when creating the model?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我爱人 2024-11-16 18:49:05

您是否尝试过使用 FileHelpers 库中的 FieldConverter

也许是这样的。这是未经测试的,但它可能会让你走上工作道路:

using System;
using FileHelpers;

internal class MyDoubleConverter : ConverterBase
{
   public override string FieldToString(object from)
   {
      return ((double) from).ToString("0000.00");
   }
}

[FixedLengthRecord]
public class MyRecordType
{
   [FieldFixedLength(7)]
   [FieldConverter(typeof(MyDoubleConverter))]
   public double MyDouble;
}

或者这可能有效,而且更简单:

[FixedLengthRecord]
public class MyRecordType
{
   [FieldFixedLength(7)]
   [FieldConverter(ConverterKind.Double, "0000.00")]
   public double MyDouble;
}

但我认为这将强制执行 0000.00 的读取和写入,我不会不知道这是否适合您的场景。

Have you tried using FieldConverters from the FileHelpers library?

Maybe something like this. This is untested, but it might get you on a working path:

using System;
using FileHelpers;

internal class MyDoubleConverter : ConverterBase
{
   public override string FieldToString(object from)
   {
      return ((double) from).ToString("0000.00");
   }
}

[FixedLengthRecord]
public class MyRecordType
{
   [FieldFixedLength(7)]
   [FieldConverter(typeof(MyDoubleConverter))]
   public double MyDouble;
}

Or this may work, and is even simpler:

[FixedLengthRecord]
public class MyRecordType
{
   [FieldFixedLength(7)]
   [FieldConverter(ConverterKind.Double, "0000.00")]
   public double MyDouble;
}

But I think that will enforce the 0000.00 for both reading and writing, and I'm wouldn't know whether that works for your scenario.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文