【问题标题】:Find a Specific Character in a Field and Replace it with a Phrase在字段中查找特定字符并将其替换为短语
【发布时间】:2013-01-11 17:22:59
【问题描述】:

我已经在互联网上搜索了几个小时来寻找这个问题的答案,但我找不到任何东西。我对 FoxPro 的体验非常有限。这可能是两个问题合二为一。

第一个问题:我有一个项目列表,其中一些项目可能包含逗号,这在我将数据传输到的程序中是不允许的。

我基本上需要这样的陈述:

REPLACE ALL Field1 with STRTRAN(field1, "," , "<break time='250ms' />"

这样的东西能满足我的需要吗?

第二个问题:我有 5 个单独的字段,我需要将数据从这些字段移到一个新字段中。像这样的东西。

字段 1:10 月 字段2:21 领域3:2013 场 4:5:00 字段5:下午

FinalField 感谢您的电子邮件,您的约会安排在 [Field1] [Field2] [Field3] 在 [Field4] [Field5]。

这将包含数千条记录,因此我想制定一个声明,将它们一次全部替换。

REPLACE ALL FinalField with STRTRAN(

在那之后,我不确定括号内需要采用什么格式才能将字段正确替换为我需要的内容。提前感谢您的帮助。

【问题讨论】:

    标签: foxpro visual-foxpro


    【解决方案1】:

    第一个问题: 您所写的内容会将每次出现的逗号替换为“”。不确定这就是你所追求的。简单地删除所有逗号:

    用 STRTRAN(field1, [,], []) 替换所有字段 1

    会做的。在处理逗号、引号等时,我喜欢使用 [ ] 字符作为字符串分隔符 - 为了清楚起见。

    看一下 TEXTMERGE() 函数来回答你的第二个问题。

    【讨论】:

    • 感谢您的帮助!我有一种感觉,我在顶部是正确的,我查看了 TEXTMERGE() 函数,我希望这是我需要的解决方案。再次感谢!
    【解决方案2】:

    对于第二个问题,您可以编写如下表达式:

    REPLACE ALL FinalField WITH ;
      "Thank you for your email, your appointment is scheduled for " + ;
      ALLTIRIM(Field1) + " " + TRANSFORM(Field2) + ;
      TRANSFORM(Field3) + " at " + ;
      ALLTRIM(Field4) + ALLTRIM(Field5) + "."
    

    这假定 Field1、Field4 和 Field5 是字符,而 Field2 和 Field3 是数字。如果不是这样,您将不得不调整它们。

    如果您要一次性导出到另一个应用程序,您可能会发现编写 SQL 查询将所有数据转换为您想要的格式然后导出查询生成的游标会更容易。

    【讨论】:

    • 感谢回复,其实我用的是这个而不是TEXTMERGE()函数,因为这个比较容易理解。
    猜你喜欢
    • 2020-11-22
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多