问题标签 [fileparsing]

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 投票
6 回答
3508 浏览

c# - 解析 Quickbook IIF 格式文件

我正在使用 Quickbook 的 IIF 文件格式,我需要编写一个解析器来读取和写入 IIF 文件,并且在读取文件时遇到了一些问题。

这些文件很简单,它们是制表符分隔的。每一行要么是一个表定义,要么是一行。定义以“!”开头 和表名,行仅以表名开头。这是我遇到的问题:某些字段允许换行。

当我第一次遇到这个问题时,我想,好吧,只需逐个标签而不是逐行解析它,但要做到这一点,我必须用制表符替换换行符,并得到比列更多的值,但我发现用换行符分散在太多列中的值。

你将如何解析这样的文件?

编辑:一个例子

0 投票
3 回答
8658 浏览

java - 在 Java 中一次读取两行文本文件的最佳方法是什么?

这就是我逐行处理文件的方式。然而,在这种情况下,我想在每次迭代中向处理器发送行文本。(我正在处理的文本文件基本上将一条记录存储在两行中,因此我每次都向处理器发送一条记录。)

在 Java 中执行此操作的最佳方法是什么?

0 投票
6 回答
2000 浏览

c++ - 通过解析纯文本文件生成数据结构

我为正在编写的游戏编写了一个文件解析器,以便我自己轻松更改游戏的各个方面(例如角色/阶段/碰撞数据)。例如,我可能有一个这样的字符类:

我设置我的解析器从文件中读取具有类似于 C++ 语法的数据结构

这将创建两个数据结构并将它们放在一个 map<std::string, Character*>中,其中键字符串是我给它的任何名称(在本例中为 Sidekick 和 AwesomeDude)。当我的解析器看到一个指向类的指针时,比如队友指针,它足够聪明,可以在地图中查找以获取指向该数据结构的指针。问题是我不能将 Sidekick 的队友声明为 AwesomeDude,因为它还没有被放置到 Character map 中。

我正在尝试找到解决此问题的最佳方法,以便我可以让我的数据结构引用尚未添加到地图中的对象。我能想到的两个最简单的解决方案是(a)添加转发声明数据结构的能力或(b)让解析器读取文件两次,一次是用指向空数据结构的指针填充映射,第二次是通过并填写它们。

(a) 的问题是我还可以决定在类上调用哪个构造函数,如果我转发声明某些内容,我必须让构造函数与其余数据分开,这可能会造成混淆。(b) 的问题是我可能想在他们自己的文件中声明 Sidekick 和 AwesomeDude。我必须让我的解析器能够读取一个文件列表,而不是一次读取一个文件(我猜这还不错,尽管有时我可能想从一个文件中读取一个文件列表文件)。(b) 还有一个缺点,就是不能使用稍后在构造函数本身中声明的数据结构,但我认为这没什么大不了的。

哪种方式听起来更好?有没有我没有想到的第三种选择?似乎应该通过指针引用或绑定或其他东西来解决这个问题...... :-/ 我想这有点主观,基于我想给自己的功能,但欢迎任何输入。

0 投票
5 回答
5432 浏览

python - Python中的简单数据存储

我正在寻找一个使用 Python 将数据存储为平面文件的简单解决方案,这样每一行都是可以轻松解析的数组的字符串表示形式。

我确信 python 有一个库可以轻松完成这样的任务,但到目前为止,我发现的所有方法似乎都很难让它工作,我相信有更好的方法。到目前为止,我已经尝试过:

  • array.toFile() 方法,但不知道如何让它与嵌套的字符串数组一起工作,它似乎面向整数数据。
  • 列表和集合没有内置的 toFile 方法,因此我必须手动对其进行解析和编码。
  • CSV 似乎是一种不错的方法,但这也需要手动解析它,并且不允许我在末尾简单地附加新行 - 因此 CSVWriter 的任何新调用都会覆盖文件现有数据。

我真的在努力避免使用数据库(也许是 SQLite,但它似乎有点矫枉过正),因为我正在尝试将其开发为除了 Python 之外没有任何软件先决条件。

0 投票
8 回答
1022 浏览

c# - C#中的文件解析

我正在 Visual Studio 2008 中构建游戏,为了构建关卡,我将有两种类型的文件(实际上不止这些,但这两个是唯一对我的问题重要的文件)我需要解析。一个人将决定关卡的内容,看起来像这样:

LevelName = "示例级别"

Object1Type = "自定义对象"

Object1File = "WideFloor_DF"

Object1Position = 600,600

Object2Type = "圆"

Object2Position = 550, 500

Object2Mass = 5

等等

另一个将规定自定义对象的属性,看起来像这样:

名称=“宽地板”

质量 = 1

GeometryMap = "WideFloor_GM"

IsStatic = 真

等等

我对正则表达式不是很熟悉(阅读:我不喜欢它们,因为它看起来太像线条噪音而难以理解),我想知道是否有比使用大量正则表达式更简单的方法?

编辑:我知道我忘记了什么!我真的很讨厌 xml 文件,所以我真的不想使用它们(waaaaaaaay 对我来说太冗长了)。编辑2:我喜欢我想出的格式,并且不想改变。

0 投票
11 回答
3208 浏览

scripting - 什么语言之于二进制,就像 Perl 之于文本?

我正在寻找一种脚本(或更高级别的编程)语言(或例如 Python 或类似语言的模块)来轻松分析和操作文件(例如核心转储)中的二进制数据,就像 Perl 允许非常流畅地操作文本文件一样。

我想做的事情包括以各种形式(二进制、十进制、十六进制)呈现任意数据块,将数据从一种字节序转换为另一种字节序,等等。也就是说,你通常会使用 C 或汇编的东西,但我寻找一种允许非常快速地为高度特定的一次性目的编写小段代码的语言。

有什么建议么?

0 投票
2 回答
992 浏览

perl - 用于类似 Makefile 的续行的最干净的 Perl 解析器

我正在编写的 perl 脚本需要解析具有像 Makefile 这样的连续行的文件。即以空格开头的行是前一行的一部分。

我写了下面的代码,但不觉得它很干净或 perl-ish(见鬼,它甚至不使用“重做”!)

有许多边缘情况:奇数位置的 EOF、单行文件、以空行(或非空行或续行)开头或结尾的文件、空文件。我所有的测试用例(和代码)都在这里:http ://whatexit.org/tal/flatten.tar

你能写出通过我所有测试的更干净,perl-ish 的代码吗?

0 投票
5 回答
302 浏览

c# - 解析和更改数字的脚本

在编辑特定类型的文件时,我经常使用数字,而且这大多是乏味的工作。该文件的格式如下:

对于编写一个解析这个并让我以编程方式更改每个数字的脚本,你会推荐什么?

语言:我使用 C#、一些 F#(菜鸟)和 Lua。如果您建议正则表达式,您能否提供具体的,因为我不熟悉它们?

0 投票
1 回答
180 浏览

python - 请帮助我使用此程序将文件解析为 XML 文件

解析输入文本文件并生成 a) XML 文件和 b) SVG(也是 XML)文件。

输入文本文件 (input.txt) 包含对全国多个农产品配送中心和存储中心的描述。每行描述单个配送中心 (dcenter) 或存储中心,每个中心都有许多属性;每个属性名称(例如代码)由其值用 = 分隔。

示例(input.txt)

程序的期望输出:

输出 1

请帮我完成这个程序。我会很感激的。

0 投票
2 回答
2299 浏览

powershell - 转换文件的最佳文件解析解决方案是什么?

我正在为我们的企业导入例程寻找自定义文件解析的最佳解决方案。我想基本上将一种文件格式更改为标准文件格式,并有一个将数据导入数据库的例程。我需要能够为每个客户创建自定义脚本,因为很难让客户遵守标准或模板格式。到目前为止,我已经查看了 PowerShell 和 Iron Python 来做到这一点,但我不确定这是我想要走的路。我还查看了一些工具,例如 Talend,它是一种拖放式工具,就灵活性而言,它可能会或可能不会给我我想要的东西。我们是一家 .NET 商店,过去已经创建了自定义代码来执行此操作,但我需要更快地创建然后每次获得新文件格式时编写自定义解析函数的代码。