问题标签 [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.
c# - 具有 FileHelpers 的多个 CSV 结构
我正在制作一个使用 csv 文件的网站,该文件可以有 2 种格式(将来可能会更多)。
结构1
结构2
以上是它在 excel 中的显示方式(如果查看原始数据,它将全部用逗号分隔)
我想要有 2 个结构的原因是因为我正在尝试利用用户可以从中导出数据的 3rd 方站点。该站点将其导出为 csv 文件,第一行是标题。我真的只关心 2 个标题,目前不需要重置(但您必须导出所有无法选择的列)。
第二种结构是,如果用户不希望使用此站点,因为他们不想这样做,这样做不舒服等等。他们可以选择打开 excel 并手动写入数据,然后将其保存为 csv文件。
因此,对于手动操作的人,我想让它尽可能简单,就好像我不使用 Header 2 和 Header 4 数据一样,我为什么要费心让他们输入呢?然而,与此同时,如果人们通过第一种方式并导出数据,我不希望他们不得不将文件加载到 excel 中并删除 2 列。
我将要求标题必须始终完好无损并且是第一行。我想出的唯一想法是阅读第一行并查看标题的顺序。如果它有 4 个按确切顺序排列的标头,则以一种方式呈现。如果该顺序中只有 2 个标题以另一种方式呈现。
我知道FileHelpers有能力做多个分隔符并选择如何呈现它,但由于我正在查看标题,我不确定这是否已经融入,或者我是否需要以某种方式自己编写它然后告诉它要做什么。
有谁知道我是否可以使用文件助手来做到这一点?
编辑 这是我到目前为止所拥有的
c# - 更改 FileHelpers EOL 字符
我正在尝试将 10GB 的 .dat 文件解析为 .NET 中可识别的内容。列分隔符是“~”,EOL 是“++EOL++”。我知道如何处理分隔符,但是当文件中没有实际的换行符时,我找不到一种简单的方法来处理“++EOL++”。这可以通过 FileHelpers 中的一个选项来处理,还是我必须编写一些自定义的东西?
c# - 如何跳过不良记录
我正在使用File Helpers 2.9.9,我想知道如何让它跳过坏记录而不是崩溃?
我也遇到了 DateTime 问题。我不明白为什么它不能使用我设置的格式转换“12/22/2011”。
c# - FileHelpers 和带有 SqlServerStorage 类的 SQL 插入 --- 如何显示错误
我正在使用 FileHelpers 库将 CSV 文件上传到 SQL Server。我想向用户展示一个无法上传的记录列表,这是由于错误造成的。我将 SqlServerStorage 类的 ErrorMode 设置为 SaveAndContinue,但是当其中一条记录违反外键约束时,InsertRecords 方法仍会引发异常。有没有办法保存这个错误并继续插入?
谢谢。
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_数量
c# - FileHelpers 错误和 RecordString
我对 FileHelpers 有一个奇怪的问题。解析 csv 文件时,如果我将引擎的 IgnoreFirstLines 参数设置为 >0,并且遇到的第一个错误出现在 CSV 文件的第一个非忽略行上,则引擎不会正确保存 RecordString。它保存 csv 文件的第一行(被忽略的行)。
示例:引擎设置:
CSV 文件:
如果解析以“1911”开头的行时出错,engine.ErrorManager.Errors[0] 将错误地将 CSV 文件的第一行存储在 RecordString 属性中。LineNumber 属性保持正确。随后的错误将具有正确的 RecordString 值。
我似乎找不到任何关于此的信息;我想知道是否有人见过这样的事情。
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)
。在脚本和编译模式下工作的解决方法是
为什么它可以作为脚本工作而不是编译?如果可能的话,我想保持它不可变。感谢您的任何见解!
c# - FileHelpers 是否受到限制?
我想知道当它从文件中读取流时,你能告诉它只取 x 行吗?假设你想要文件中的 100 行,你可以告诉它只取前 100 行(忽略第一行,因为它将是标题)。即使文件有 200 行?
c# - FileHelpers 中的多个日期如何?
我想知道如何在filehelpers中执行多个日期?似乎您必须指定要支持的每种格式(这有点糟糕……希望它可以处理更多基本格式)。
这给了我虽然
所以看来我必须进行一些自定义转换或其他什么?它是否正确?
编辑
我正在使用版本2.9.9.0
选项