我问的第一个问题,我不知道如何清楚地问,或者是否会有我想听到的答案;)
tl;dr:“我想在工作中将文件导入我的应用程序,但我不知道输入格式。我怎样才能发现它?”
原谅任何悬而未决的冗长和/或修订。
在我的工作中,我依赖于一个用 Pascal 编写的不受支持的(和专有的)应用程序。我没有使用 Pascal 的经验(还...),自然也没有源代码访问权限。这是一个出色的(我认为是非常秘密/NDA 类型的交易)应用程序,它使我们能够处理我雇主组织中的库存和财务问题。它的功能非常全面,相当稳定和健壮,并且有点被更高的权力强加给我们(词?)。
它具有的一项出色功能是能够将“时间表”加载到我们的公司系统中。此功能应该可以为我们节省数百小时的数据输入时间。但事实并非如此。问题是,我们收到的时间表是以人眼的传统格式编写的。“新”系统无法解释它们。
我们当前的信息(我必须阅读然后手动重新输入数据库)以一种富文本平面文件格式发送,这很容易用可能任何主流语言的字符串库进行解析。
所以我想写一个转换器把我们的数据转换成新软件可以解释的格式。
通过将某些分类文件输入系统,我对它期望的文件类型有了一些了解:
- 我“导入”一个零字节文件。什么都没有发生(与打印没有数据的报告相同)
- 我“导入”了一个我猜可能看起来像系统期望的 XML 文件。它以异常对话框和堆栈跟踪响应。显然字符串
<?xml
包含非法字符或东西 - 我“导入”了一个 jpeg 图像——结果与 #2 类似。
所以我认为我的目标本身想要一个平面文件。该文件需要包含“文档编号”以及{带有“事件 ID”和描述和数值的条目}。但我不确定这一点。
没有人能准确地告诉我这些文件应该是什么样子。知情人士说他们已经看到了该功能的演示——在某个地方有一个实用程序可以创建我的可导入时间表。但是现在,实用程序丢失了,我只能靠自己了。
我可以使用哪些方法来确定输入文件格式?我对调试帕斯卡一无所知,但我认为这可能是我最好的选择。还是我必须继续使用蛮力,直到我买得起一百万台猴子操作的打字机?我必须反编译目标应用程序吗?我不知道我是否可以逃脱,更不用说阅读反编译的源代码了。
我的 google-fu 让我失望了。以前有没有人做过这样的事情,或者他们能指出我正确的方向吗?有没有关于这个主题的指南?
提前致谢。
PS:我确信我在这一点上没有违反任何法律,尽管我将不得不检查反编译是否会给我带来麻烦,而且这可能超出了我的技术能力范围。