【问题标题】:How to find all the defined variables in Progress-4gl?如何在 Progress-4gl 中找到所有定义的变量?
【发布时间】:2015-08-28 13:24:47
【问题描述】:

我被要求管理 SLES 上的服务器进度 10.2B 和上面编写的软件系统。半年后,我开始了解使用此服务器的复杂性和用 ABL 编写的程序。由于我除了控制台和笔记本解析之外什么都没有,所以某些过程比较复杂。

最近,在一长串程序中,我有一个问题: 是否有可能找出在执行某个过程的特定点定义了哪些变量、全局变量、共享变量?

【问题讨论】:

    标签: progress-4gl openedge


    【解决方案1】:

    是的,有。您始终可以使用诸如grep 之类的操作系统实用程序。

    grep -i "shared var" *.p
    

    无论如何都会在所有 *.p 文件中查找字符串“shared var”。您可以使用任何正则表达式来准确描述您想要查找的内容,从而使其变得更好、更高效。

    您还可以从编译器获得一些基本帮助(假设您拥有某种开发许可证)。

    将这些文件视为一个基本示例:

    proc1.p
    =======
    DEFINE NEW SHARED VARIABLE bool AS LOGICAL NO-UNDO.
    bool = TRUE.
    RUN proc2.p.
    
    proc2.p
    =======
    DEFINE SHARED VARIABLE bool AS LOGICAL NO-UNDO.
    DISPLAY bool.
    

    现在您使用 XREF 选项对它们运行编译语句。

    COMPILE proc1.p SAVE XREF proc1xref.txt.
    COMPILE proc2.p SAVE XREF proc2xref.txt.
    

    这将创建两个交叉引用的文本文件,如下所示:

    proc1xref.txt
    ==============
    c:\temp\proc1.p c:\temp\proc1.p 1 COMPILE c:\temp\proc1.p
    c:\temp\proc1.p c:\temp\proc1.p 1 CPINTERNAL ISO8859-1
    c:\temp\proc1.p c:\temp\proc1.p 1 CPSTREAM ISO8859-1
    c:\temp\proc1.p c:\temp\proc1.p 1 STRING "bool" 4 NONE UNTRANSLATABLE 
    c:\temp\proc1.p c:\temp\proc1.p 1 NEW-SHR-VARIABLE bool
    c:\temp\proc1.p c:\temp\proc1.p 3 ACCESS SHARED bool 
    c:\temp\proc1.p c:\temp\proc1.p 3 UPDATE SHARED bool 
    c:\temp\proc1.p c:\temp\proc1.p 5 RUN proc2.p
    
    
    proc2xref.txt
    =============
    c:\temp\proc2.p c:\temp\proc2.p 1 COMPILE c:\temp\proc2.p
    c:\temp\proc2.p c:\temp\proc2.p 1 CPINTERNAL ISO8859-1
    c:\temp\proc2.p c:\temp\proc2.p 1 CPSTREAM ISO8859-1
    c:\temp\proc2.p c:\temp\proc2.p 1 STRING "bool" 4 NONE UNTRANSLATABLE 
    c:\temp\proc2.p c:\temp\proc2.p 3 ACCESS SHARED bool 
    c:\temp\proc2.p c:\temp\proc2.p 3 STRING "yes/no" 6 NONE TRANSLATABLE  FORMAT 
    c:\temp\proc2.p c:\temp\proc2.p 3 STRING "bool" 4 LEFT TRANSLATABLE 
    c:\temp\proc2.p c:\temp\proc2.p 3 STRING "-------" 7 NONE UNTRANSLATABLE 
    

    proc1xref.txt 中的"NEW-SHR-VARIABLE bool" 告诉您一个名为 bool 的共享变量已创建,"ACCESS SHARED bool" 告诉您它已被使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 2016-09-20
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 2020-09-21
      相关资源
      最近更新 更多