2016-03-22 7 views
0

ソフトウェアを保守する基本的な記録があります。私たちは電子メールアドレスを取得しようとしていますが、サポートソフトウェアは「@」記号を取得できません。CHRTRANで文字列を更新するVisual FoxPro関数

Visual FoxProコマンドCHRTRANを使用して、 'UdidText'フィールドにカンマ '、'を検索し、 '@'記号に置き換えようとしています。

現在のコード・スニペットを読み取り:短い音符として

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

。パーセント記号は私が好むワイルドカードです。

編集:私のアプリケーションでコードをチェックすると、この関数はエラー "オペレータ/オペランドタイプの不一致"を生成します。

答えて

2

CHRTRAN()はワイルドカードを必要としません。 2番目のパラメータは、置換する文字です。だから、試してみてください。

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

タマル

0

chrtran()の部分を1として、それは単に次のようになります。文字はudidnoではないので

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

あなたのコードは、おそらくあなたにエラーを与えていますか?おそらくあなたが必要です:

.. udidno = 78 ... 

があります。

しかし、ANSIがONになっていない限り、あなたのコードはまったく置き換えられません。

ANSIがオンでない場合、その部分はFALSEになり、更新は行われません。同様=「78」udidnoは「78」で始まるすべてのレコードを意味して

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

:それを修正するには、無料のANSIのあるSET ANSI ONまたはより良い利用==のいずれかが必要です。

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 
関連する問題