filehelpers - 解析可变行长度

2024-04-26

我必须解析(C#)a.CSV文件,具有变量“宽度”和 2 行标题信息(第一行是名称,第二行是单位)。

数据如下:

示例1.CSV:

"timestamp","NAME_1","NAME_2","NAME_3","NAME_4"
"ms","unit_1","unit_2","unit_3","unit_4"
0.01,1.23,4.56,7.89,0.12
0.02,1.23,4.66,7.89,0.11
0.03,1.23,4.76,7.89,0.11
0.04,56.23,4.86,7.89,0.12

示例2.CSV:

"timestamp","NAME_1","NAME_2","NAME_3","NAME_4","NAME_5",...,"NAME_N"
"ms","unit_1","unit_2","unit_3","unit_4","unit_5",...,"unit_N"
0.01,1.23,4.56,7.89,0.12,0.13,...,0.27
0.02,1.23,4.66,7.89,0.12,0.13,...,0.22
0.03,1.23,4.76,7.89,0.11,0.13,...,0.24
0.04,56.23,4.86,7.89,0.12,0.13,...,0.29

N 是表格的“宽度”(值最大可达 128 或更大)。我打算使用文件助手 http://filehelpers.sourceforge.net/.

我想用[FieldOptional()]- 但这变得非常不方便,特别是当“宽度”可变时......

我目前的尝试看起来像

[IgnoreFirst(2)]
[DelimitedRecord(",")]
public sealed class LogData
{

    public Double ts;

    public Double Field1;

    [FieldNullValue(0.0)]
    [FieldOptional()]
    public Double Field2;

    [FieldNullValue(0.0)]
    [FieldOptional()]
    public Double Field3;

    // and so on
}

任何有关“如何解决可变宽度”的帮助 - 以更优雅的方式解决问题 - 提前非常感谢!

Ben


如果您打算将文件转换为DataTable,有更好的选择

请使用FileHelpers库的CsvEngine。请参阅下面的代码片段:

using (MemoryStream stream = new MemoryStream(_fileContent)) //file content can be file as byte array
            {
                TextReader reader = new StreamReader(stream);
string path = "C:\\Sample.csv";
                CsvEngine csvEngine = new CsvEngine("Model", ',', path);
                var dataTable = csvEngine.ReadStreamAsDT(reader);
//Do whatever with dataTable

}

这里的示例文件可以是 csv 文件,也可以是包含要处理的 csv 文件标题的文本文件。 DataTable 的列将根据示例文件的标题命名

Cheers

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

filehelpers - 解析可变行长度 的相关文章

随机推荐

  • 如何从 VB.NET 中的存储过程获取返回值

    我在 SQL Server 中有一个存储过程用于生成事务号 任何人都可以帮助我如何从 VB NET 调用存储过程以及如何获取从过程返回到前端的值 问候 乔治 我想你想要这样的东西 Public Sub Foo Using sql As Ne
  • 为什么从 Dropzone.js 发送时 IFormFile 集合为空?

    我正在尝试使用Dropzone js http www dropzonejs com 将 IFormFile 图像 集合发送到以下 ASP NET Core 2 1 Api 控制器操作 HttpPost action public asyn
  • 如何使用 word2vec 找到与向量最接近的单词

    我刚刚开始使用 Word2vec 我想知道如何找到最接近向量的单词 我有这个向量 它是一组向量的平均向量 array 0 00449447 0 00310097 0 02421786 dtype float32 有没有一种直接的方法可以在我
  • 如何处理 ember.js 组件中的自定义事件?

    我是 Ember js 的新手 在理解其原理时遇到了一些问题 我知道行动向上 数据向下但在现实生活中 假设我有Fotorama http fotorama io 在 my gallery 组件中初始化 我不知道这是否可以 但我是在didIn
  • EditText请求焦点

    我正在设计一个登录页面 UserName Password LoginButton 当活动开始时 我希望焦点转到 用户名 文本框并显示键盘 我正在使用以下代码 boolean checkFocus user requestFocus Log
  • 从数据框中删除所有非唯一行

    抱歉 这是我的第二篇文章 如果有什么不明白的地方请告诉我 我正在尝试删除所有有重复项的行 我已经尝试过keep False参数为drop duplicates 它只是没有做正确的事情 假设我的数据框看起来像这样 ORDER ID ITEM
  • 将带有 UIElement 的 FlowDocument 导出为 rtf

    我正在尝试导出一个FlowDocument其中包含一个 rtf 网格 我使用了以下代码 using FileStream fs new FileStream C demo rtf FileMode OpenOrCreate FileAcce
  • 我应该在 Uber 应用程序中放置什么重定向 URL?

    我正在阅读 Uber 的 sdk api 文档 但我是菜鸟 我不知道redirectURL 应该是什么 这是 Uber 提供的给定网址吗 因为我找不到它 或者是由应用程序开发人员部署自己的服务器 本地计算机定制的网页的 URL 如果是的话我
  • json_encode 可以触发 catch 块吗? [复制]

    这个问题在这里已经有答案了 这可能是一个非常简单的问题 但我找不到任何相关信息 我使用的系统聚合了来自不同来源的大量数据 然后将这些数据存储在数据库中 在大多数情况下 系统工作正常 但有时我们会遇到一个问题 即数据可能具有我们的系统不喜欢的
  • 使用 Spring Data 进行不区分大小写的排序

    如何使用 Spring data Pageable 进行不区分大小写的排序 我的存储库中有这个方法 public interface ItemRepository extends QueryDslPredicateExecutor
  • 使用类方法作为 celery 任务

    我正在尝试使用类的方法作为 django celery 任务 并使用 task 装饰器对其进行标记 描述了同样的情况here https stackoverflow com questions 8846489 celery python o
  • viewForHeaderInSection 的框架始终大小相同

    UIView tableView UITableView tableView viewForHeaderInSection NSInteger section if section 0 UIView view UIView alloc in
  • 在Python中分配空值或字符串

    我想了解分配空值和空输出之间是否有区别 如下所示 1 gt 像这样分配一个值 string 2 gt 作为输出返回空值 string abcd str1 str2 split 换句话说 1 gt 中的 string 和2 gt 中的 str
  • 检查是否有任何输入元素处于焦点

    我有一个 jquery 脚本 当按下键盘上的任意键时 它会显示一个 div 我想向脚本添加一个条件 仅当页面上没有其他输入区域 文本区域或文本字段 处于焦点时才运行脚本 这样您就可以在页面的其余部分实际键入内容 而无需显示 div docu
  • 如何在 Linux 中离线安装 vscode-server [重复]

    这个问题在这里已经有答案了 我正在尝试安装 VScode 远程 ssh 扩展 但我的远程主机无法连接到互联网 因此无法下载软件 所以我收到了一些类似的错误消息 SSH Resolver called for ssh remote kf SS
  • java与maven和eclipse中的clojure混合

    我创建了一个示例多语言程序 我有一个用java实现的传感器和一个机器人 以及用clojure实现的AI 我无法正确连接maven src main java clojuretest DistanceSensor java AI clj us
  • NiFi 如何将 InvokeHTTP 处理器与 SOAP 结合使用

    我看到其他人已经能够使其发挥作用 但是我无法找到足够的详细信息来解释他们如何实现这一目标 以便我能够使其发挥作用 This guy http apache nifi developer list 39713 n7 nabble com SO
  • 是否存在具有单个强所有者和多个弱引用的共享指针?

    我正在寻找类似于的智能指针Arc Rc只不过它不允许共享所有权 我想要尽可能多的rc Weak我需要的参考资料 但我只想one强引用 又称所有者 我想通过类型系统来强制执行这一点 Arc Rc可以克隆 并且可以在多个地方拥有它们 滚动我自己
  • 如果在 Application_Start 中抛出未处理的异常会发生什么?

    是否会针对下一个请求再次运行 Application Start 方法 它是否取决于 ASP NET 版本 托管服务器版本和 或其他上下文 我试图确定在那里加载关键程序集是否是一件好事 例如 对于整个应用程序的功能是否至关重要的数据访问组件
  • filehelpers - 解析可变行长度

    我必须解析 C a CSV文件 具有变量 宽度 和 2 行标题信息 第一行是名称 第二行是单位 数据如下 示例1 CSV timestamp NAME 1 NAME 2 NAME 3 NAME 4 ms unit 1 unit 2 unit