vf中的替换命令,怎么替换其中一个特定字符?
vf数据库中,有表学生信息,其中有一列学号里有数据050607?0506080506?09050610?我用什么命令能把学号中的问号去掉呢?并且要保持原来的数据不变?...
vf数据库中,有表学生信息 ,其中有一列学号里有数据050607? 050608 0506?09 050610? 我用什么命令能把学号中的问号去掉呢?并且要保持原来的数据不变?
展开
2个回答
展开全部
Replace for at('?', 学号)>0 学号 with strtran(学号, '?', '')
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
语法
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")
--------------------------------------------------------------------------------
UP
--------------------------------------------------------------------------------
其实strtran可以替代chrtran,vfp中string和chr不是分得很清晰.
--------------------------------------------------------------------------------
strtran可以替代chrtran?
STRTRAN()是替换整个字符的,CHRTRAN()是一个一个字符替换的,某些时候相同,但两个函数面向不同的用途。
s = "1,2,3,4,5"
STRTRAN(s, ",", "-")
CHRTRAN(s, ",", "-")
此时是相同的,但此时应该用CHRTRAN()
s = "{1},{2},{3},{4},{5}"
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, " ", "")将其中的“空格”去掉,不管全角还是半角.
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")
--------------------------------------------------------------------------------
UP
--------------------------------------------------------------------------------
其实strtran可以替代chrtran,vfp中string和chr不是分得很清晰.
--------------------------------------------------------------------------------
strtran可以替代chrtran?
STRTRAN()是替换整个字符的,CHRTRAN()是一个一个字符替换的,某些时候相同,但两个函数面向不同的用途。
s = "1,2,3,4,5"
STRTRAN(s, ",", "-")
CHRTRAN(s, ",", "-")
此时是相同的,但此时应该用CHRTRAN()
s = "{1},{2},{3},{4},{5}"
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, " ", "")将其中的“空格”去掉,不管全角还是半角.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询