使用CHRTRAN Visual FoxPro函数

时间:2016-03-22 19:15:24

标签: visual-foxpro

我有一些基本的记录保存软件;我们正在尝试捕获电子邮件地址,支持软件无法捕获' @'登录。

尝试使用Visual FoxPro命令CHRTRAN搜索字段' UdidText'对于逗号','并用' @'替换它。登录。

当前的代码段显示为:

update [udids] set udidtext = CHRTRAN (udidtext, '%,%', '@') where udidno = '78' and udidtext != ''

简要说明;百分号是我首选的通配符。

编辑:检查我的应用程序中的代码时,该函数会产生错误"运算符/操作数类型不匹配"。

2 个答案:

答案 0 :(得分:2)

CHRTRAN()不需要或不需要通配符。第二个参数是要替换的字符。所以试试:

CHRTRAN(uiditext, ',', '@')

答案 1 :(得分:0)

根据chrtran()部分,它只是:

chrtran(uidtext, ',', '@')

您的代码可能会给您错误,因为udidno不是字符?可能你需要:

 .. udidno = 78 ... 

那里。

但是,除非ANSI为ON,否则您的代码根本不会进行任何替换。你有这个:

... and udidtext != ''

如果ANSI不是ON,那么该部分将解析为FALSE并且不会发生更新。要纠正它,你需要SET ANSI ON或更好地使用==这是ANSI免费的:

update [udids] set udidtext = CHRTRAN(udidtext, ',', '@') where udidno = '78' and !(udidtext == '')

以同样的方式='78'表示udidno以'78'开头的任何记录。如果您需要完全匹配,那么那将成为:

update [udids] set udidtext = CHRTRAN(udidtext, ',', '@') where udidno == '78' and !(udidtext == '')

最后一部分实际上是不必要的,所以它变成了:

update [udids] set udidtext = CHRTRAN(udidtext, ',', '@') where udidno == '78'

最后,你的udidno可能是一个数字:

update [udids] set udidtext = CHRTRAN(udidtext, ',', '@') where udidno = 78