Python 想法/解决方案如何编辑PBL(PowerBuilder库)文件?

Python 想法/解决方案如何编辑PBL(PowerBuilder库)文件?,python,.net,powerbuilder,Python,.net,Powerbuilder,我想从PBL(PowerBuilder库)文件中获取DataWindow的内容,并对其进行适当的编辑。其思想是读取pbl文件,并访问各个数据窗口以修改源代码。不知何故,我已经设法使用IronPython完成了PblReader.NET库的第一部分。它允许我读取PBL文件,并访问DataWindow源代码。但是,它不支持修改。我想知道是否有人有编辑PBL文件的想法 PowerBuilder应用程序可以从PBL加载数据窗口(不必位于库路径中),修改它,然后将其保存回PBL。我已经编写了两个工具来实现

我想从PBL(PowerBuilder库)文件中获取DataWindow的内容,并对其进行适当的编辑。其思想是读取pbl文件,并访问各个数据窗口以修改源代码。不知何故,我已经设法使用IronPython完成了PblReader.NET库的第一部分。它允许我读取PBL文件,并访问DataWindow源代码。但是,它不支持修改。我想知道是否有人有编辑PBL文件的想法

PowerBuilder应用程序可以从PBL加载数据窗口(不必位于库路径中),修改它,然后将其保存回PBL。我已经编写了两个工具来实现这一点。PowerBuilder将允许您使用
modify
方法根据数据窗口的对象模型修改数据窗口。我不知道为什么会有人想重新创造这一切。我记得在某处看到过PB的Python绑定。您可以从PB获取DW语法,调用Python,然后将其保存回PB。但是您必须用Python进行所有解析,而PB已经理解DW。最后我很惊讶特里没有插上PBL窥视器。您可以使用PBL Peeper导出数据窗口,用Python将它们转换为您心中的内容。然后将它们导入PB。

PowerBuilder应用程序可以从PBL加载数据窗口(不必位于库路径中),修改它,然后将其保存回PBL。我已经编写了两个工具来实现这一点。PowerBuilder将允许您使用
modify
方法根据数据窗口的对象模型修改数据窗口。我不知道为什么会有人想重新创造这一切。我记得在某处看到过PB的Python绑定。您可以从PB获取DW语法,调用Python,然后将其保存回PB。但是您必须用Python进行所有解析,而PB已经理解DW。最后我很惊讶特里没有插上PBL窥视器。您可以使用PBL Peeper导出数据窗口,用Python将它们转换为您心中的内容。然后将它们导入PB。

那么您想用Python而不是PowerBuilder来编辑它们?经典的PB pbl包含源代码和代码的编译版本。即使您可以修改源代码,也可能需要PowerBuilder来编译它。不过我可能错了。如果有必要,可以在PB中再次编译它。想法是,通过python脚本,我可以替换所有数据窗口中的字体类型,而不是在PB中逐个替换。编辑和编译是与PowerBuilder和PBL紧密结合的概念;你不能把它们分开。目标是什么?也许有一种方法可以做到这一点,但这是令人难以置信的复杂和困难的(除非你有几周的时间投入到这个过程中,否则需要第三方商业工具)。如果你只是不喜欢PB IDE,我几乎可以向你保证,你会更讨厌研究如何从原始文本源文件编译。我做这种更改的方法是使用SCM工具从源代码管理系统中检查对象。这给了我导出文件。我做我想做的任何更改,然后转到PB并刷新状态,然后向我显示它们已签出。然后我可以从PB导入、测试和签入。我使用记事本++在多个文件中进行全局替换。在Terry发布PBL Peeper之前,我已经知道在整个源代码树上运行了
sed
。所以你想用Python而不是PowerBuilder来编辑它们?经典的PB pbl包含源代码和代码的编译版本。即使您可以修改源代码,也可能需要PowerBuilder来编译它。不过我可能错了。如果有必要,可以在PB中再次编译它。想法是,通过python脚本,我可以替换所有数据窗口中的字体类型,而不是在PB中逐个替换。编辑和编译是与PowerBuilder和PBL紧密结合的概念;你不能把它们分开。目标是什么?也许有一种方法可以做到这一点,但这是令人难以置信的复杂和困难的(除非你有几周的时间投入到这个过程中,否则需要第三方商业工具)。如果你只是不喜欢PB IDE,我几乎可以向你保证,你会更讨厌研究如何从原始文本源文件编译。我做这种更改的方法是使用SCM工具从源代码管理系统中检查对象。这给了我导出文件。我做我想做的任何更改,然后转到PB并刷新状态,然后向我显示它们已签出。然后我可以从PB导入、测试和签入。我使用记事本++在多个文件中进行全局替换。在Terry发布PBL Peeper之前,我已经知道在整个源代码树上运行
sed
。哇,这个PBL Peeper是我一直在寻找的工具,谢谢!显然我对目标还不清楚。可能是太多蛋酒了?我想我是专注于“就地编辑”。如果您愿意使用PB、ORCAScript或其他PB链接工具回写PBL(PBL Peeper已经删除/禁用了这一部分,所以我现在对这种热情更感到困惑),那么一切都很好。请注意,对于超级用户,这种类型的活动可以在运行时完成,使用Create()或LibraryImport()PowerScript函数利用更改的DW代码。PowerBuilder“支持”外部工具获取源代码、修改源代码,并通过ORCA库将修改后的代码放回。在大多数情况下,您最好导出对象、修改它们并重新导入它们。这就是特里最初制作PBL Peeper的目的。在我们知道这是个坏主意(TM)之前,它还用于将对象导入回。我建议您仔细阅读文档,因为PP可以做各种不明显的事情。此外,Terry可能会提供4.1.1的链接,该链接比普通PP的测试版稍微多一些,并且有更多的好东西。哇,这个PBL Peeper是我一直在寻找的工具,谢谢!