2012.11.21 星期三
教学内容:函数应用(一)
教学目的:数值型函数及字符型函数的应用
教学重点:len、substr、at、replicate、stuff等
教学难点:replicate、stuff
教学过程:
一、复习导入
二、新授
1.LEFT(cExpression, nExpression)
从字符表达式最左边一个字符开始返回指定数目的字符。
2.SUBSTR(expC,expN1,expN2)
截取一个字符串的一部分,返回一个字符串,是原串的子串。
3. AT(expC1,expC2[,expN])
判断第一个字符串,在第二个字符串左侧首次出再的位置,结果为N型值,expN为第几次出现的位置,省略默认为1。
三、实例
1.substr函数
STORE 'abcdefghijklm' TO mystring
CLEAR
? SUBSTR(mystring, 1, 5) && 显示 abcde
? SUBSTR(mystring, 6) && 显示 fghijklm,省略第expN2,则从第6个到末尾。
相关函数:left(expC,expN),right(expC,expN),即左截取、右截取。
SUBSTR(expC,expN1,expN2) &&截取一个字符串的一部分,返回一个字符串,是原串的子串。
STORE 'abcdefghijklm' TO mystring
CLEAR
? SUBSTR(mystring, 1, 5) && 显示abcde
? SUBSTR(mystring, 6) && 显示fghijklm,省略第expN2,则从第6个到末尾。
相关函数:left(expC,expN),right(expC,expN),即左截取、右截取。
2.LEN函数
A=“abcdefg”
?len(a) &&显示结果为7
?len(a)+2 &&显示结果为9,即函数值可参与运算
?len(a+a) &&显示两个字符串的长度,结果为14
Accept “请输入一个字符串” to x &&从键盘上获得一个字符串
Y=len(x) &&将x中字符的个数,保存到变量y中。
For i=y to 1 step -1 &&从Y个循环至1,步长为-1
?? subs(x,i,1) &&从X中截取第i个,顺序为:最后一个,倒数第二个…第一个。
Endfor &&这个循环的结果就是
3.AT函数
STORE ‘河北省徐水县职教中心,是一所国家级职教中心。' TO gc
STORE '中心' TO zx
CLEAR
? AT(zx,gc) && 显示17
? AT(zx,gc,2) && 显示39
? at(‘职业’,gc) &&显示为0,因为没有存在‘职业’二字
Xm=”张宝康”
If at(‘张’,xm)=1 &&根据结果是不是出现的位置为1,判断是不是姓张。
? “姓张”
Else
? “不姓张”
Endif
4.stuff
STUFF( )返回一个字符串,此字符串是通过用另一个字符表达式替换现有字符表达式中指定数目的字符得到的。
STUFF(cExpression, nStartReplacement, nCharactersReplaced, cReplacement)
返回值,符型
参数
cExpression
指定要在其中进行替换的字符表达式。
nStartReplacement
在 cExpression 中开始替换的位置。
nCharactersReplaced
要替换的字符数目。如果 nCharactersReplaced 是 0,则替换字符串 cReplacement 插入到 cExpression 中。
cReplacement
用以替换的字符表达式。如果 cReplacement 是空字符串,则从 cExpression 中删除用 nCharactersReplaced 指定的字符数目。
示例
STORE 'abcdefghijklm' TO gcString1
STORE '12345' TO gcString2
CLEAR
? STUFF(gcString1, 4, 0, gcString2) && 插入,结果是abc12345efghijklm
? STUFF(gcString1, 4, 3, gcString2) && 替换,结果是abc12345ghijklm
? STUFF(gcString1, 4, 6, '') && 删除,结果是abcjklm
? STUFF(gcString1, 4, 1, gcString2) && 替换和插入,结果是abc12345efghijklm
? STUFF(gcString1, 4, 4, gcString2) && 替换和删除,结果是abc12345hijklm
? STUFF(gcString1, 4, LEN(gcString1), gcString2) && 替换, 删除剩余部分,结果是abc12345
四、总结
1.将电话号码由现在的7位,提升到8位,提升方法,是从现在的电话号码的第一位与第二位之间加一个数字“8”,比如,原来的电话号码为"8750263",按原则替换成"88750263"。
2.重复产生一个由30个下划线组成的字符串。
3.at函数的应用,可以判断一个字符串中是否含有另一个字符串,如,判断姓名中含有“娟”字,可以使用 at("娟",姓名)<>0,如果成立(表达式为真),则说明姓名中含有汉字娟,否则(表达式为假),则说明姓名中不含有汉字娟。
五、作业
1.应用字符串截取函数,完成截取一个数字的个位、十位、百位数字。
2.使用AT函数,判断一个表格中(如数据表xs1中)的姓名中是否含有汉字"
|