正文

VFP怎样分割字符串2006-11-01 12:07:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/itzhiren/19877.html

分享到:

在VFP中如果要分割字符串,就要用到ALINES函数,下面先将该函数的具体用法帖一下,然后举例说明其用法和注意事项。

ALINES( ) 函数
将一个字符表达式的或备注字段中的每一行复制到一个数组相应行。
ALINES(ArrayName, cExpression [, lTrim] [cParseChar, ,?,cParseChar])
返回值
数值型
参数
ArrayName
指定数组的名称,将字符表达式或备注字段中的每一行复制到该一个数组中。如果所指定的数组不存在,Visual FoxPro 会自动创建该数组。如果该数组存在, 但是大小不足以容纳备注字段中的每一行,则 Visual FoxPro 自动增加该数组的大小。如果该数组比所需的要大,则 Visual FoxPro 会截短该数组。
cExpression
指定字符表达式或备注字段,其中包含要复制到数组中的行。如果cExpression 是空字符串或 null 值,会创建一个具有单行的数组,并且该行包含空字符串。
lTrim
指定是否从复制到数组的行中删除前导和后缀空格。如果 lTrim 为“真”(.T.),则从行中删除前导和后缀空格。如果 lTrim 为“假” (.F.) 或省略,则不删除前导和后缀空格。
cParseChar
指定一个或多个由 ALINES() 返回的 cExpression 中的分隔元素的字符。cParseChars 的最大值是 23。各 cParseChars 串的最大长度是 11 字符。
备注
ALINES()返回数组的行数(或者,同样地返回字符表达式或备注字段的行数) 。字符表达式或备注字段的第一行复制到数组的第一行,字符表达式或备注字段的第二行复制到数组的第二行, 依次类推。
所有字符表达式是大小写敏感的。
一个换行符 (CHR(10)) 或回车符 (CHR(13)) 表明了一行的结束。也可以使用这些字符的组合 (CHR(10) + CHR(13)或CHR(13) + CHR(10)) 表明一行的结束。
ALINES()提供了分析字符表达式或备注字段中各行的简单方法。虽然 MLINES() 也用来分析字符表达式或备注字段,但是 ALINES()更快,并且需要更少的编程。另外,ALINES() 不受 SET MEMOWIDTH 的值的影响。
为了将字符表达式或备注字段中的行复制到数组, 必须有足够的内存。如果内存不足,Visual FoxPro 会生成一条错误信息。
如果你想执行一个大小写敏感的分解, 可以按以下示例中的一个来做。
? ALINES(aMyArray,UPPER(employee.notes), "R.")
? ALINES(aMyArray,employee.notes, "R.", "r.")
示例
下面的程序在数据库 testdata 中打开表 employee。 alines() 用于复制notes备注型字段中的行到名为 amyarray 的数组中, 然后显示数组的内容。
本示例中,alines() 返回 1,因为在备注字段中输入雇员信息时,句子后没有按 enter 键。
CLOSE DATABASES
CLEAR
SET TALK OFF
OPEN DATABASE (HOME(2) + 'data\testdata')
USE employee  && 打开 Employee table

? ALINES(aMyarray,employee.notes,CHR(13))  && 显示1
? ALINES(aMyarray,employee.notes,".")  && 显示7
? ALINES(aMyarray,employee.notes,",")  && 显示4
? ALINES(aMyarray,employee.notes," ")  && 显示75
? ALINES(aMyarray,employee.notes,".", ",")  && 显示10
? ALINES(aMyArray, employee.notes)  && 显示1
? aMyArray(1)

以上就是该函数的用法。

比如s="xx,yy,zz",现在我们以 ,  来分割s这个字符串,并将结果保存到数组aa:
ALINES(aa,s,1,",")

注意数组aa的取值下标是从1开始的,这里,aa(1)="xx",aa(2)="yy",aa(3)="zz"

阅读(8933) | 评论(2)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册