我正在尝试使用一些 Visual FoxPro 9.0 代码,这些代码是由现在早已不复存在的程序员几年前编写的。 ALLTRIM() 有多种用途,其中在传递的字段名称前面包含双星号,例如:
fred = ALLTRIM( **barney )
其中 Barney 是表中的字符字段。当我尝试在 VFP session 中运行该行时,出现错误并显示“函数丢失)”。但我对支持我不理解的代码感到不舒服 - “**”有什么作用?
我尝试将字段存储到内存变量中,以防调用此字段的代码中出现 SCATTER,而导致的错误不会发生任何变化。我尝试将其他数据类型(数字和 bool 值)存储到内存变量中,但仍然没有变化。我已经用 dBase、FoxBase、FoxPro、VFP 编程近 35 年了 - 我不记得以前遇到过这种情况。然而,程序运行没有错误,我只是不明白它在做什么。
如果出现任何问题,相关代码将存储在表中的备注字段中,然后通过 EXECSCRIPT() 调用进行调用。代码使用的一些表(但不是包含代码的表)是 SQL Server 表,通过游标适配器访问 - 因此我的示例中的“barney”很可能是游标适配器中的字段,而不是 .数据库文件。
最佳答案
我找到了答案。当然,在源代码中搜索星号是没有用的,因为有注释。但我最终想到,在发布这个问题后,搜索带有引号的字符串,并发现,在我正在查看的代码被 EXECSCRIPT() 调用之前,它也是通过 STRTRAN 运行的(),替换了“m”。或者 ”。”或代码中“**”的其他适当前缀。
因此,双星号是应用程序内部的,对 VFP 本身没有任何意义。
关于visual-foxpro - Visual FoxPro 函数调用中的双星号意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57914853/