问题标签 [gedcom]
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.
ruby-on-rails - Rails gedcom gem,如果我加载 gedcom 文件,我会得到“堆栈级别太深”异常
我正在使用 Ruby on Rails 开发家谱分析器。为了解析 gedcom 文件,我安装了这个 gem:https ://github.com/rbur004/gedcom
文档有点零星。在rails控制台中,我输入了
它应该在 g 中加载文件(文件在项目根目录中,所以路径应该没问题)。但我收到以下错误:
文件本身应该没问题,我可以毫无问题地将其上传到 myheritage.com。
ruby - ruby gedcom 解析器 EOF 异常
我需要为分析项目解析 gedcom 5.5 文件。我发现的第一个 ruby 解析器会导致堆栈级别太深的错误,所以我试图找到替代方案。我找到了这个项目:https ://github.com/jslade/gedcom-ruby
包括一些样本,但我也没有让它们工作。
这是解析器本身:https ://github.com/jslade/gedcom-ruby/blob/master/lib/gedcom.rb
如果我尝试这样的示例:
我收到以下错误:
为了更好地理解,我在每种方法中都写了一个“gets”,这是异常引发之前的输出:
导致问题的确切线路是
在 detect_rs 方法中:
我希望有人可以帮助我。
java - 读取 GEDCOM 文件:如何将相应的出生日期、月份和年份子字符串转换为从输入文件到输出文件的整数变量
我有一个包含大量个人/家庭记录的输入 GEDCOM 文件。目的是将他们的数据格式化成这种形式:
名称(p6,“哈利·布伊斯”)。出生(p6,日期(1927,11,17))。死亡(p6,日期(2001,08,21))。famc(p6,f3)。家族(p6,f2)。
我已经能够提取人员编号和他们的姓名并将其打印到输出文件中,但是我无法解析出生/死亡日期。我希望能够使用子字符串将birthDay、birthMonth 和BirthYear 分配为整数,以便将其打印到输出文件中。它必须是整数,所以我可以按日期排序。这是来自输入文件的一个客户数据的示例。
这是我到目前为止的源代码:
}
如果没有 if 语句(包含“BIRT”),并且 outFile.write() 方法中没有“birthDay”,我的输出如下所示:
这是一个好的开始。
但是当我有那个 if 语句时,我得到一个这样的错误,并且没有打印:
现在,我已经尝试了子字符串索引值的每种组合,但似乎没有任何效果。关于我如何解决这个问题的任何想法?
提前致谢。
algorithm - 将 Gedcom 解析为 SQLite 数据库
我是一个爱好 Xojo 用户。我想将 Gedcom 文件导入我的程序,尤其是 SQLite 数据库。
数据库的结构
表
人
关系
孩子们
人物事件
关系事件
我写了一个工作 Gedcom-Line-Parser。他将单个 Gedcomline 拆分为:
我通过 TextInputStream 加载 Gedcom-File(工作正常)。不,我需要解析每一行。
Gedcom-个人样本
你会看到,Level-Numbers 向我们展示了一个“Tree-Structure”。所以我认为将文件解析为分离的对象(PersonObj、RelationshipObj、EventObj 等)到 JSONItem 是最好和最简单的方法,因为它很容易获得节点的子节点。稍后,我可以简单地读取节点、子节点来创建数据库条目。但我不知道如何创建这样的算法。
任何人都可以帮助我吗?
php - 如何创建基于 Drupal 的家谱应用程序?
我想使用 Drupal 来构建一个家谱应用程序。我看到,困难在于允许用户上传 gedcom 文件并对其进行解析,然后从该数据中创建各种 Drupal 节点。Drupal 中的节点是内容项。因此,我将个人和家庭作为内容类型,并且每个都有各种事件作为来自 gedcom 文件的字段。
gedcom 文件是家谱信息的通用格式。不同的桌面应用程序获取数据并将其转换为专有格式。我不确定如何完成的是给最终用户一个表单来上传他们的 gedcom 文件,然后让它使用 Drupal 创建节点,也就是内容项。我可以找到使用 python、perl 或其他语言解析 gedcom 文件的开源代码。因此,我可以使用其中一个库从 gedcom 文件输出中创建 JSON、XML、CSV 等。
Drupal 是用 PHP 编写的,挑战的另一个细节是,对于最终用户,我不想让他/她找到在第一步中创建的文件(其中第一步是 gedcom 文件的解析和转换)并将其上传到 Drupal。就最终用户所见,我想以某种方式使这一步发生。不知何故,我需要一种方法来触发 Drupal 在将数据转换为 JSON、XML 或 CSV 后导入数据。
c++ - 使用 C++ 检查外部文件对一组函数和打印错误以及行号
我有一个 GEDCOM 文件,我提供给我的程序,我的程序根据一组函数检查 GEDCOM 文件的内容。
如果文件内容不符合功能要求,则应在 GEDCOM 文件中存在错误的行号连同行号一起抛出错误。
我还想提一下,我曾尝试使用LINE、FILE等宏,但它们正在打印源代码的内容,如源代码行和源代码的文件名。
提前致谢
javascript - 导入/导出 GEDCOM 文件
作为项目的一部分,我必须包括要从数据库中插入/取出的 GEDCOM 文件的导入和导出。我发现很难找到如何编写文件,因为实际上没有任何关于它们如何工作的教程。有人对我能做什么有任何建议吗?我的项目是创建一个 Web 应用程序来绘制家谱,因此我将使用 javascript 和 PHP 进行编码。或者,如果有人知道任何其他有用的软件?谢谢你。
regex - 行尾的正则表达式
我正在尝试使用正则表达式解析GEDCOM文件,并且快到了,但表达式会抓取文本的下一行,以获取行尾有可选文本的行。每条记录应该是一行。
这是文件的摘录:
这是我正在使用的正则表达式:
这适用于所有行,除了末尾不包含任何文本的行,例如第一行。例如,第一条记录的最后一个捕获组包含“1 CHAR UTF-8”。
这是来自 regex101.com 的屏幕截图,显示了紫色捕获组如何渗入下一行:
我尝试使用$
限定符将其限制.*
为仅行尾,但这失败了,因为第二行也是行尾。
regex - 如何使用 Flex 处理不同的换行符约定
我们正在尝试解析 GEDCOM 文件格式。根据其标准,CR 和 LF 的所有组合都可以有效地表示换行符。
这是一种基于行的格式,所以当我们已经匹配了数字和标签时,我们经常想要匹配行的其余部分。一个规则的例子是
换行符由
这在 Windows 上运行良好,因为它在你背后将 \r\n 转换为 \n,但在 Linux 上却不行。在那里,\r 可以通过点匹配。因为 Flex 使用最长匹配规则,它要么在数据中包含 \r,要么将已知标记匹配到 UNKNOWNTAG 规则,因为这种技术上正确的匹配将长一个字节
一个解决方案可能是用 [^\r\n] 替换所有点,但这似乎不优雅。有没有更好的办法?