问题标签 [filehelpers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3537 浏览

c# - 具有 FileHelpers 的多个 CSV 结构

我正在制作一个使用 csv 文件的网站,该文件可以有 2 种格式(将来可能会更多)。

结构1

结构2

以上是它在 excel 中的显示方式(如果查看原始数据,它将全部用逗号分隔)

我想要有 2 个结构的原因是因为我正在尝试利用用户可以从中导出数据的 3rd 方站点。该站点将其导出为 csv 文件,第一行是标题。我真的只关心 2 个标题,目前不需要重置(但您必须导出所有无法选择的列)。

第二种结构是,如果用户不希望使用此站点,因为他们不想这样做,这样做不舒服等等。他们可以选择打开 excel 并手动写入数据,然后将其保存为 csv文件。

因此,对于手动操作的人,我想让它尽可能简单,就好像我不使用 Header 2 和 Header 4 数据一样,我为什么要费心让他们输入呢?然而,与此同时,如果人们通过第一种方式并导出数据,我不希望他们不得不将文件加载到 excel 中并删除 2 列。

我将要求标题必须始终完好无损并且是第一行。我想出的唯一想法是阅读第一行并查看标题的顺序。如果它有 4 个按确切顺序排列的标头,则以一种方式呈现。如果该顺序中只有 2 个标题以另一种方式呈现。

我知道FileHelpers有能力做多个分隔符并选择如何呈现它,但由于我正在查看标题,我不确定这是否已经融入,或者我是否需要以某种方式自己编写它然后告诉它要做什么。

有谁知道我是否可以使用文件助手来做到这一点?

编辑 这是我到目前为止所拥有的

0 投票
1 回答
7382 浏览

c# - 有没有办法使用 FileHelpers 库进行字段排序?

我从 nuget 下载了 FileHelpers,但我不确定此功能是否不存在,或者我是否没有正确的版本或什么。

环顾四周,似乎 FileHelpers 可能有一个属性来指定字段顺序。

我下载了这个但是当我在看nuget时似乎有另一个版本

0 投票
1 回答
1069 浏览

c# - 更改 FileHelpers EOL 字符

我正在尝试将 10GB 的 .dat 文件解析为 .NET 中可识别的内容。列分隔符是“~”,EOL 是“++EOL++”。我知道如何处理分隔符,但是当文件中没有实际的换行符时,我找不到一种简单的方法来处理“++EOL++”。这可以通过 FileHelpers 中的一个选项来处理,还是我必须编写一些自定义的东西?

0 投票
2 回答
2259 浏览

c# - 如何跳过不良记录

我正在使用File Helpers 2.9.9,我想知道如何让它跳过坏记录而不是崩溃?

我也遇到了 DateTime 问题。我不明白为什么它不能使用我设置的格式转换“12/22/2011”。

0 投票
1 回答
1081 浏览

c# - FileHelpers 和带有 SqlServerStorage 类的 SQL 插入 --- 如何显示错误

我正在使用 FileHelpers 库将 CSV 文件上传到 SQL Server。我想向用户展示一个无法上传的记录列表,这是由于错误造成的。我将 SqlServerStorage 类的 ErrorMode 设置为 SaveAndContinue,但是当其中一条记录违反外键约束时,InsertRecords 方法仍会引发异常。有没有办法保存这个错误并继续插入?

谢谢。

0 投票
2 回答
477 浏览

c# - C#正则表达式麻烦

问题!

我有来自平面文件的以下输入(规则)(谈论数字输入):

  • 输入可能是一个自然数(低于 1000):1, 10, 100, 999, ...
  • 输入可能是用引号括起来的逗号分隔数字(大于 1000):"1,000", "2,000", "3,000", "10,000", ...

我有以下正则表达式来验证输入:(?:(\d+)|\x22([0-9]+(?:,[0-9]+)*)\x22),所以对于10我在第一个匹配组中所期望的输入10,这正是我得到的。但是当我"10,000"在第一个匹配组中得到我期望的输入时10,000,它存储在第二个匹配组中。

例子

预期结果

在同一匹配组上的两个结果,在这种情况下1

问题?

  • 我究竟做错了什么?我只是从正则表达式匹配中得到糟糕的分组。
  • 另外,我正在使用filehelpers .NET来解析文件,有没有其他方法可以解决这个问题。实际上我正在尝试实现自定义转换器。

目标文件

OOR_数量

0 投票
1 回答
654 浏览

c# - FileHelpers 错误和 RecordString

我对 FileHelpers 有一个奇怪的问题。解析 csv 文件时,如果我将引擎的 IgnoreFirstLines 参数设置为 >0,并且遇到的第一个错误出现在 CSV 文件的第一个非忽略行上,则引擎不会正确保存 RecordString。它保存 csv 文件的第一行(被忽略的行)。

示例:引擎设置:

CSV 文件:

如果解析以“1911”开头的行时出错,engine.ErrorManager.Errors[0] 将错误地将 CSV 文件的第一行存储在 RecordString 属性中。LineNumber 属性保持正确。随后的错误将具有正确的 RecordString 值。

我似乎找不到任何关于此的信息;我想知道是否有人见过这样的事情。

0 投票
1 回答
372 浏览

oop - FileHelpers BadUsageException 仅在已编译的 F# 上,但不在脚本中

我编写了一个运行良好的 fsi 脚本,并希望对其进行编译,以便更轻松地移动它。但是,当我编译它时,突然 FileHelpers 开始报错。

以下代码使用FileHelpers 2.9.9。这是说明问题的最小工作示例,test.fsx

文件test.csv

如果我运行代码,fsi .\test.fsx它将正常工作。但是,如果我尝试编译fsc .\test.fsx并运行它,.\test.exe我会收到错误消息Unhandled Exception: FileHelpers.BadUsageException: The record class Type needs a constructor with no args (public or private)。在脚本和编译模式下工作的解决方法是

为什么它可以作为脚本工作而不是编译?如果可能的话,我想保持它不可变。感谢您的任何见解!

0 投票
2 回答
877 浏览

c# - FileHelpers 是否受到限制?

我想知道当它从文件中读取流时,你能告诉它只取 x 行吗?假设你想要文件中的 100 行,你可以告诉它只取前 100 行(忽略第一行,因为它将是标题)。即使文件有 200 行?

0 投票
2 回答
3378 浏览

c# - FileHelpers 中的多个日期如何?

我想知道如何在filehelpers中执行多个日期?似乎您必须指定要支持的每种格式(这有点糟糕……希望它可以处理更多基本格式)。

这给了我虽然

所以看来我必须进行一些自定义转换或其他什么?它是否正确?

编辑

我正在使用版本2.9.9.0

选项