【问题标题】:What does a double-asterisk mean in a Visual FoxPro function call?Visual FoxPro 函数调用中的双星号是什么意思?
【发布时间】:2019-09-12 21:41:06
【问题描述】:

我正在尝试使用几年前由程序员编写的一些 Visual FoxPro 9.0 代码,这些代码现在早已不复存在。 ALLTRIM() 有多种用途,包括在要传递的字段名称前加一个双星号,例如:

fred = ALLTRIM( **barney )

其中 Barney 是表中的字符字段。当我尝试在 VFP 会话中运行该行时,它会出错并显示“缺少功能 )”。但是支持我不理解的代码让我很不舒服——“**”是做什么的?

我已尝试将该字段存储到 memvar,以防调用此字段的代码中存在 SCATTER,而导致的错误没有任何变化。我尝试将其他数据类型(数字和布尔值)存储到 memvar,仍然没有变化。我已经在 dBase、FoxBase、FoxPro、VFP 中进行了近 35 年的编程——我不记得以前遇到过这种情况。然而,程序运行没有错误,我只是不明白它在做什么。

如果有任何问题,相关代码将存储在表中的备注字段中,然后通过 EXECSCRIPT() 调用进行调用。代码使用的一些表(但不是包含代码的表)是 SQL Server 表,通过游标适配器访问 - 所以在我的示例中,“barney”很可能是游标适配器中的一个字段,而不是 . DBF。

【问题讨论】:

    标签: visual-foxpro


    【解决方案1】:

    我找到了答案。当然,因为 cmets,在源代码中搜索星号是没有用的。但我终于想到,在发布这个问题后,搜索带有引号的字符串 ,发现在我正在查看的代码被 EXECSCRIPT() 调用之前,它也是通过 STRTRAN 运行的(),它取代了“m”。或者 ”。”或代码中“**”的其他适当前缀。

    所以,双星号是应用程序内部的,对 VFP 本身没有任何意义。

    【讨论】:

      猜你喜欢
      • 2011-02-24
      • 1970-01-01
      • 2015-03-26
      • 2014-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多