vf中的替換命令,怎麼替換其中特定字元

時間 2021-08-13 22:50:49

1樓:du瓶邪

語法chrtran(字元表示式1,字元表示式2,字元表示式3)

返值型別

字元型引數描述

字元表示式1:字串,其中的某些字元將被替換。

字元表示式2:確定字元表示式1中的哪些字元將被替換。

字元表示式3:用於替換的字元。

看了上面的內容後可能還是有點稀里糊塗,那就用乙個例子來說明吧:

? chrtran('aabcdef', 'ace', 'xyz')

顯示結果是:xxbydzf

即用「x」替換「aabcdef」中的「a」,「y」替換「c」,「z」替換「e」。這下明白了吧:)

注意如果「字元表示式3」中的字元少於「字元表示式2」中的字元數,那麼「字元表示式1」與「表示式2」中多餘的字元相匹配的字元將被刪除,怎麼講起來總象繞口令,還是看例子:

? chrtran('aabcdef', 'ace', 'xy')

顯示結果是:xxbydf,「e」被刪掉,或者說「xy」中第3個字元是空字元,「e」被這個空字元替換了。

說明另有乙個函式 strtran(),主要用於雙位元組的字元,如字串中有中文,最好使用這個函式。

chrtran(), 替換字元,如chrtran("123456", "135", "abc") ==> "a2b4c6"

strtran(),替換字串,如strtran("123456", "123", "112233") ==> "112233456"

s = strtran(s, "b", "x")

其實strtran可以替代chrtran,vfp中string和chr不是分得很清晰.

strtran可以替代chrtran?

strtran()是替換整個字元的,chrtran()是乙個乙個字元替換的,某些時候相同,但兩個函式面向不同的用途。

s = "1,2,3,4,5"

strtran(s, ",", "-")

chrtran(s, ",", "-")

此時是相同的,但此時應該用chrtran()

s = ",,,,"

chrtran(s, "{}", "")可以將上面的字串轉換成"[1],[2],[3],[4],[5]",而strtran()就做不到

s = "12345"

strtran(s, "12345", "abcde")

chrtran(s, "12345", "abcde")

此時兩者結果相同,但執行機理是不同的,此時應該用strtran()

s = "1 1 1" && 內含乙個半角空格和乙個全形空格

此時可用chrtranc(s, "  ", "")將其中的「空格」去掉,不管全形還是半形.

2樓:匿名使用者

replace for at('?', 學號)>0 學號 with strtran(學號, '?', '')

foxpro的replace命令中怎麼實現,替換欄位1中部分資料。比如中國替換欄位中的中國人。

3樓:匿名使用者

設 ①欄位名為 a;②要替換當前表中所有記錄的a欄位中包含的所有"中國人"為"中國";則:

replace a with strtran(a,"中國人","中國") all

請參考vf幫助:

① replace fieldname1 with eexpression1 [additive] [, fieldname2 with eexpression2 [additive]] ... [scope] [for lexpression1] [while lexpression2] [in nworkarea | ctablealias]

將nworkarea|或ctablealias指定的表中的字段fieldname1 [,fieldname2]...內容[分別]替換為表示式eexpression1 [eexpression2]...的值;[additive] 僅用於備註字段,表示將eexpression的內容追加到備註字段尾部;[scope]指定替換記錄範圍,可以是all或next nrecords或rest或record nrecordnumber,預設值是當前記錄(next 1);[for lexpression1]、 [while lexpression2]指定進行替換的條件,在[scope]範圍內只要lexpression1、lexpression2 的結果為真,replace操作就將進行。

② strtran(c1, c2 [, c3] [, n1] [, n2])

將c1中的c2替換為c3;替換從c1中第n1個c2開始,連續替換n2次。c1、c2、c3可以是字元表示式或備註字段;c3的預設值是空字串;n1的預設值是1;n2的預設值是從n1開始的所有c2

dos怎麼替換中的等號,dos 怎麼替換txt中的等號

if a z 這樣才是正確的寫法。還有您,0,true前面的 z是什麼意思?dos是啥意思?怎麼用的?dos是英文disk operating system的縮寫,意思是 磁碟作業系統 顧名思義,dos主要是一種面向磁碟的系統軟體。dos就是人與機器的一座橋梁,是罩在機器硬體外面的一層 外殼 有了d...

用批處理命令修改文字中的數字,批處理替換指定文件中的指定內容

echo off temp.yky set ff a.txt set a n 3 for f tokens 1 delims i in findstr n ff do temp.yky move temp.yky ff echo.處理完畢,按任意鍵退出.pause nul echo 第 n 行不是數...

C替換文字中的指定字元,C 替換乙個文字中的指定字元

string.format string path 123.txt 檔案路徑 string con filestream fs new filestream path,filemode.open,fileaccess.read streamreader sr new streamreader fs ...