在字段中查找特定字符并将其替换为短语

时间:2013-01-11 17:23:00

标签: foxpro visual-foxpro

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

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

我基本上需要这样的声明:

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

这样的事情能够实现我的需要吗?

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

Field1:十月 Field2:21 Field3:2013 Field4:5:00 Field5:PM

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

这将是成千上万的记录,所以我想制定一个可以立即替换它们的声明。

REPLACE ALL FinalField with STRTRAN(

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

2 个答案:

答案 0 :(得分:3)

第一个问题: 您编写的内容将用“&lt; break time ='250ms'/&gt;”替换每次出现的逗号。不确定那是你所追求的。只需删除所有逗号:

使用STRTRAN(field1,[,],[])

替换所有field1

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

查看TEXTMERGE()函数以获得第二个问题的答案。

答案 1 :(得分:1)

对于第二个问题,你可以写一个像:

这样的表达式
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查询以将所有数据放入所需格式然后导出查询生成的游标更容易。