我需要编写一个文件,该文件可能正在由 AS/400 上的 RPG IV 之类的东西解释(但我不知道)。该文件将通过从我们的 MySQL 数据库中读取数据然后以指定格式写入来创建。它可能非常大(可能以 GB 为单位测量,但尚未确定)。现在我认为 Perl 的内置format
实际上可能是我最好的选择,因为像 Xslate 和 Template Toolkit 这样的东西更适合非固定宽度 (HTML) 的东西。我唯一担心的是它format
似乎没有条件,看起来我可能需要它们(如果设置了字段 A,我发现格式左对齐,如果没有,则右对齐并填充)
问问题
225 次
2 回答
0
Template Toolkit 可以在创建固定宽度格式的文件方面发挥作用。诀窍是使用模板来描述文件和记录结构,但使用 Perl 函数格式化每个字段的数据。
跳过模板并在 Perl 中进行所有格式化可能更容易。无论哪种方式,您都需要考虑如何格式化您的字段。以我的经验sprintf
更好,并且可以处理更多固定宽度格式文件所需的格式情况。你可能仍然需要实现一些手怪的辅助函数(如果你不够幸运的话,比如用 ASCII 编码的 EBCDIC/COBOL 符号数字)。
在传统的固定宽度格式文件中有上千种特殊情况,这几乎足以让我喜欢 XML 数据文件,通常它最终决定了格式化文件的最佳方法是最奇怪的特殊情况。
于 2012-09-04T14:47:43.097 回答