Functions.ALines 方法 | |
-- todo --
将字符表达式或备注字段中的每一行复制到数组的对应行中。
命名空间:
XSharp.VFP
程序集:
XSharp.VFP (在 XSharp.VFP.dll 中) 版本:2.22 GA
语法 FUNCTION ALines(
ArrayName,
cExpression,
nFlags,
cParseChar,
cParseChar2
) AS USUAL CLIPPER
[ClipperCallingConventionAttribute(new string[] { ... })]
public static __Usual ALines(
__Usual ArrayName = default,
__Usual cExpression = default,
__Usual nFlags = default,
__Usual cParseChar = default,
__Usual cParseChar2 = default
)
查看代码参数
- ArrayName (Optional)
- 类型:__Usual
指定用于存储字符表达式或备注字段中复制行的数组名称。
- cExpression (Optional)
- 类型:__Usual
指定包含要复制到数组中的行的字符表达式或备注字段。所有字符表达式区分大小写。
如果 cExpression 为空字符串或空值,将创建一个只有一行的数组,该行包含空字符串。
您可以使用双字节表达式。
- nFlags (Optional)
- 类型:__Usual
在 X# 的早期版本中,nFlags 是 lTrim 选项。lTrim 选项对应 nFlag 的值为 1。之前的代码在 X# 9.0 中将以相同方式运行。
下表描述了 nFlags 的值。
- cParseChar (Optional)
- 类型:__Usual
指定一个或多个用于终止 cExpression 中元素的字符串。
- cParseChar2 (Optional)
- 类型:__Usual
指定一个或多个用于终止 cExpression 中元素的字符串。
返回值
类型:
__Usual
数值。
ALines( ) 返回数组中的行数,或等同于字符表达式或备注字段中的行数。
备注
如果指定的数组不存在,X# 会自动创建该数组。
如果数组存在但不够大,无法容纳备注字段中的所有行,X# 会自动增加数组的大小。
如果数组大于所需大小,X# 会截断数组。
位 | 值 | 描述 |
---|
0 | 1 | (默认)删除行首和行尾的空格,或对于 Varbinary 和 Blob 值,删除尾部的零(0)而不是空格。 |
1 | 2 | 即使最后一个元素为空,也将其包含在数组中。 |
2 | 4 | 不在数组中包含空元素。 |
3 | 8 | 指定不区分大小写的解析。 |
4 | 16 | 在数组中包含解析字符。 |
当用于二进制值(如
Varbinary 和
Blob)时,
ALines( ) 创建具有
Varbinary 类型元素的数组。
当指定 cParseChar 时,在找到 cParseChar 时行会中断,下一行从 cParseChar 后的字符继续。
cParseChar 中允许的最大字符串数为 23。
您可以使用换行符(CHR(10))或回车符(CHR(13))来表示行的结束。
您还可以使用这两个字符的任意组合来表示行的结束,例如(CHR(10) + CHR(13) 或 CHR(13) + CHR(10))。
ALines( ) 的默认行为是在指定一个或多个 cParseChar 值时忽略 CHR(13) 和 CHR(10),
除非您也指定了行结束字符。
当对
Varbinary 或
Blob 输入省略 cParseChar 时,
ALines( ) 将十六进制值 0hA(10)视为回车符,
并在该位置中断行。值 0hA 不会保存在结果数组元素中,可能导致不正确的二进制值。
例如,给定二进制值 0hFE0AF2,
ALines( ) 创建一个包含值 0hFE 和 0hF2 的两元素数组。
ALines( ) 提供了一种简单的方法来解析字符表达式或备注字段中的行。
虽然您也可以使用
MLINES( ) 来解析字符表达式或备注字段,但
ALines( ) 更快且需要更少的编程。
此外,
ALines( ) 不受
Set MEMOWIDTH 值的影响。
字符表达式或备注字段的第一行被复制到数组的第一行,
字符表达式或备注字段的第二行被复制到数组的第二行,依此类推。
您必须有足够的内存来将大型备注字段中的行复制到数组中。如果内存不足,X# 会生成错误消息。
如果您想执行不区分大小写的解析,可以参考以下示例之一:
1? ALines(aMyArray, UPPER(employee.notes), "R.")
- 或 -
1? ALines(aMyArray, employee.notes, "R.", "r.")
示例 1Close Databases
2Clear
3Open Database (HOME(2) + "data\testdata")
4Use employee
5? ALines(aMyArray, employee.notes)
6? ALines(aMyArray, employee.notes, CHR(13))
7? ALines(aMyArray, employee.notes, " ")
8? ALines(aMyArray, employee.notes, ".")
9? ALines(aMyArray, employee.notes, ",")
10? ALines(aMyArray, employee.notes, ".", ",")
11? ALines(aMyArray, employee.notes, 8, "m")
12? ALines(aMyArray, employee.notes, "m")
13? ALines(aMyArray, employee.notes, "M")
参见