请问如何提取字段中某一位置上的内容?
请问各位前辈,如何把一个字段中排在第二或第三位一次类推,中的某一个数字或内容提取出来放在一个单独的字段中,或其他字段中的某一位置上?
万分感谢!
[解决办法]
SUBSTR( ) 函数
从给定的字符表达式或备注字段中返回字符串,字符串从字符表达式或备注字段中指定位置开始,并延续指定的字符数。
SUBSTR(cExpression, nStartPosition [, nCharactersReturned])
参数
cExpression
指定要从中返回字符串的字符表达式或备注字段。
nStartPosition
指定字符表达式或备注字段 cExpression 中要返回字符串的位置。cExpression 中第一个字符的位置是 1。
注意:
如果 nStartPosition 大于 cExpression 中的字符数,SUBSTR( ) 会返回空串 ( " ")。
nCharactersReturned
指定要从 cExpression 中返回的字符数。如果省略了 nCharactersReturned,则返回字符表达式结束前的全部字符。
返回值
字符(Character)。SUBSTR( ) 返回字符串。
注意:
当在 Debug 窗口中发出 SUBSTR( ) 时,将不会备注字段的值。要在 Debug 窗口中返回值,请将备注字段名放置到 ALLTRIM( ) 中,再将 ALLTRIM( ) 放置到 SUBSTR( ) 中。
解释
当在 SQL SELECT 命令中与备注字段字段一起使用 SUBSTR( ) 时,请在 SUBSTR( ) 中包含 PADR( ) 函数,以便在转换为字符串时,空的或不同长度的备注字段产生同样的结果。
示例
下面的示例使用 STORE 命令将串“abcdefghijklm”储存到变量 myString 中。CLEAR 清除 Visual FoxPro 主窗口。从 nStartPosition = 1 指定的第一个字符开始,SUBSTR( ) 显示 nCharactersReturned = 5 指定的带有五个字符“abcde”的串。随后,SUBSTR( ) 显示 nStartPosition = 6 所指定的从串中第六个字符开始的串“fghijklm”,nCharactersReturned 值的省略指定直到字符表达式结束。
复制程序代码
STORE 'abcdefghijklm ' TO myString
CLEAR
? SUBSTR(myString, 1, 5)
? SUBSTR(myString, 6)