2016-03-22 57 views
0

我有一些基本的記錄保存軟件;我們正試圖捕獲電子郵件地址,支持軟件無法捕獲'@'符號。用CHRTRAN更新字符串Visual FoxPro函數

嘗試使用Visual FoxPro命令CHRTRAN在字段'UdidText'中搜索逗號','並將其替換爲'@'符號。

當前的代碼片段如下:

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

作爲一個簡短的說明;百分號是我的首選通配符。

編輯:當檢查我的應用程序中的代碼時,函數產生一個錯誤「操作符/操作數類型不匹配」。

回答

2

CHRTRAN()不需要或不需要通配符。第二個參數是要替換的字符或字符。因此,嘗試:

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

添馬艦

0

由於每chrtran()的一部分,它只會是:

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

你的代碼很可能給你的錯誤,因爲udidno不是字符?可能您需要:

.. udidno = 78 ... 

那裏。

但是你的代碼根本不會做任何替換,除非ANSI是ON。你有這個:

... and udidtext != '' 

如果ANSI不是那麼那部分將解析爲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