内容发布更新时间 : 2024/11/19 10:41:48星期一 下面是文章的全部内容请认真阅读。
VFP6与VFP9函数对比
VFP6与VFP9函数对比(不包含未公开或系统保留的函数),对比了VFP6和VFP9的函数,找出它们的不同并作出简要说明,在此贴出以供各位狐友参考。
为了方便从VFP6开始学习的狐友,顺利学习VFP9,笔者依据两个版本的帮助文件(不包含未公开或系统保留的函数),对比了VFP6和VFP9的函数,找出它们的不同并作出简要说明,以供各位狐友参考。由于时间仓促,难免有所疏漏或错误,敬请指正或补充完善。 ADDPROPERTY( ) 函数
VFP9: ADDPROPERTY(oObjectName, cPropertyName, [, eNewValue ]) VFP6: 无
说明: ADDPROPERTY( ) 函数用于在运行时刻向一个对象添加一个新属性。
ADIR( ) 函数
VFP9: ADIR(ArrayName [, cFileSkeleton [, cAttribute [, nFlag]]]) VFP6: ADIR(ArrayName [, cFileSkeleton [, cAttribute [, cCreatorType]]]) 说明: VFP6中该函数的参数cCreatorType仅适用于FoxPro for Macintosh。在VFP9中增加参数nFlag,用于设置数组中文件(夹)名格式: 0— (默认)以大写方式显示完整的路径名,1—以原始的大小写方式,2—按 DOS 8+3 命名约定(大写)
建议: 该函数很有用,应掌握。例如: 利用该函数,可以遍历文件夹(或路径)。
ADLLS( ) 函数
VFP9: ADLLS(ArrayName) VFP6: 无
说明: 把由 DECLARE DLL 命令载入的函数名放入数组,并返回其数目。
ADOCKSTATE( ) 函数
VFP9: ADOCKSTATE( ArrayName [, nType | nExtended]) VFP6: 无
说明: 获取所有可停靠的表单、集成开发环境(IDE)窗口 或工具栏的停靠状态。针对表单,可以使用GetDockState 方法程序. ADOCKSTATE( ) 在运行时刻可用。
AEVENTS( ) 函数
VFP9: AEVENTS( ArrayName [, 0 | 1 | oEventObject ] ) VFP6: 无
说明: 可以用 AEVENTS() 函数来获取已存在的事件绑定数。
AFONT( ) 函数
VFP9: AFONT(ArrayName [, cFontName [, nFontSize | nFontCharSet [, nFlags]]]) VFP6: AFONT(ArrayName [, cFontName [, nFontSize]])
说明: VFP9中,对该函数的功能进行了增强,参数nFlags用来决定传递给函数的第三个参数是字体大小还是字符集。
ALANGUAGE( ) 函数
VFP9: ALANGUAGE(ArrayName, nType) VFP6: 无
说明: ALANGUAGE( ) 函数返回一个包含所有可用的 Visual FoxPro 命令, 函数,基本类或数据库事件的数组。
ALINES( ) 函数
VFP9: ALINES(ArrayName, cexpression_r [, nFlags] [, cParseChar [, cParseChar2 [, ...]]])
VFP6: ALINES(ArrayName,cexpression_r [,lTrim])
说明: 事实上,VFP9中同样兼容VFP6中该函数的语法。在VFP9中,该函数生成的数组(元素)中,可以不包含空行,可以包含分隔字符;更为重要的是,可以指定一个或多个分隔字符(或字符串),不再固定为chr(10)和chr(13)。 建议: 该函数十分有用,应掌握。 应用举例:
*----------------------------------------------------------------- * TAlines.prg
* [功能] 将从Excel表格中复制的单元格打印出来
*----------------------------------------------------------------- LOCAL ARRAY aExcelLine[1], aCells[1] LOCAL i, j
IF LEN(_CLIPTEXT) > 0 AND ALINES(aExcelLine, _CLIPTEXT) > 0 FOR i = 1 TO ALEN(aExcelLine)
IF ALINES(aCells, aExcelLine, CHR(9)) > 0 FOR j = 1 TO ALEN(aCells) ?? aCells[j] + CHR(9) ENDFOR ? ELSE
? aExcelLine ENDIF ENDFOR ELSE
MESSAGEBOX('请从Excel中复制有数据的单元格后再运行本程序!', 16, '提示') ENDIF
ALLTRIM( ) 函数
VFP9: ALLTRIM(expression_r [, nFlags] [, cParseChar [, cParseChar2 [, ...]]]) VFP6: ALLTRIM(cexpression_r)
说明: 在VFP9中,ALLTRIM()函数不再是只能去除空格的东东!通过指定参数cParseChar和nFlags,它可以去除表达式前后的任意字符(串),甚至可以忽略大小写。
链接: LTRIM( )、RTRIM( )和TRIM( )函数也作出了类似的改进,在下面这些函数将不再介绍。
建议: 这些函数十分有用,应掌握。 应用举例:
*----------------------------------------------------------------- * [功能] 将STR()函数生成的字符串小数点后的零去除
*----------------------------------------------------------------- FOR i = 1 TO 3
lcNum = ALLTRIM(STR(i / 3, 15, 6), 0, '0') && 去除小数点后的零 lcNum = LTRIM(lcNum) && 去除字符串左边的空格 IF RIGHT(lcNum, 1) = '.' && 对于整数, 去除小数点 lcNum = LEFT(lcNum, LEN(lcNum) - 1) ENDIF ? lcNum ENDFOR
AMEMBERS( ) 函数
VFP9: AMEMBERS(ArrayName, oObjectName | cClassName [, nArrayContentsID] [, cFlags]) VFP6: AMEMBERS(ArrayName, ObjectName | cClassName [, 1 | 2])
说明: 在VFP9中该函数得到了增强。例如指定cFlags参数,可以把用户定义 (外来的) 属性, 方法或事件放入数组。
APRINTERS( ) 函数
VFP9: APRINTERS(ArrayName [, nValue]) VFP6: APRINTERS(ArrayName)
说明: 在VFP9中,如果指定nValue参数值为 1,数组中包含 5 列(VFP6中为 2 列)打印机信息,增加了打印机驱动程序名称、打印机注释和打印机位置。
APROCINFO( ) 函数
VFP9: APROCINFO(ArrayName, cFileName [, nType]) VFP6: 无
说明: 该函数创建一个在一个程序文件中所包含的 Visual FoxPro 语言元素(如类、过程)的数组。
ASCAN( ) 函数
VFP9: ASCAN(ArrayName, eexpression_r [, nStartElement [, nElementsSearched [, nSearchColumn [, nFlags ]]]])
VFP6: ASCAN(ArrayName, eexpression_r [, nStartElement [, nElementsSearched]]) 说明: VFP9中增加了参数nSearchColumn,可以指定要搜索的列;增加了参数nFlags,可以决定扫描数组元素时,是否区分大小写、是否严格匹配。 建议: 掌握该函数。
ASELOBJ( ) 函数
VFP9: ASELOBJ( ArrayName, [ 1 | 2 | 3 ] ) VFP6: ASELOBJ(ArrayName, [1 | 2])
说明: 指定第2个参数值为 3 时,函数创建包含三个元素的数组,保存当前活动的代码编辑窗口的信息: 容器对象的对象引用,.scx 或 .vcx 文件完整的路径及文件名,可用的#INCLUDE 文件的完整路径及文件名。
ASESSIONS( ) 函数
VFP9: ASESSIONS(ArrayName) VFP6: 无
说明: 该函数创建一个已存在的数据工作期的 ID 数组。
ASORT( ) 函数
VFP9: ASORT(ArrayName [, nStartElement [, nNumberSorted [, nSortOrder [, nFlags]]]) VFP6: ASORT(ArrayName [, nStartElement [, nNumberSorted [, nSortOrder]]]) 说明: 指定nFlags参数,决定是否大小写敏感。nFlags 参数仅在当前比较序列是大小写敏感 (如 \而你想执行一个非大小写敏感排序才是有用的。
ASQLHANDLES( ) 函数
VFP9: ASQLHANDLES(ArrayName [, nStatementHandle]) VFP6: 无
说明: 该函数将所有活动的 SQL 连接状态句柄的数值引用存储到数组中。
ASTACKINFO( ) 函数
VFP9: ASTACKINFO(ArrayName) VFP6: 无
说明: 该函数创建一个数组,数组中保存当前堆栈调用的状态信息。
ATAGINFO( ) 函数
VFP9: ATAGINFO(ArrayName [,cCDXName [, nWorkArea | cTableAlias]]) VFP6: 无
说明: 该函数创建一个包含索引文件信息的数组
AUSED( ) 函数
VFP9: AUSED(ArrayName [, nDataSessionNumber [, cTableName]]) VFP6: AUSED(ArrayName [, nDataSessionNumber])
说明: 在VFP中如果使用参数cTableName,则数组中仅包含由 cTableName 指定的表的别名。
BINDEVENT( ) 函数
VFP9: BINDEVENT(oEventSource, cEvent, oEventHandler, cDelegate [, nFlags]) 或者 BINDEVENT(hWnd | 0, nMessage, oEventHandler, cDelegate [, nFlags]) VFP6: 无
说明: 该函数提供当一个事件发生时执行用户代码(一个对象的方法)的能力。
BINTOC( ) 函数
VFP9: BINTOC(nexpression_r [, eFlags]) VFP6: BINTOC(nexpression_r [, nSize])
链接:CTOBIN( )函数也作了类似改进或增强,下面将不再介绍该函数。
说明: 在VFP9中,该函数得到了增强。除了完全兼容VFP6的参数值外,还增加了“F”、“B”、“R”、“S”、“8”等。
BITAND( ) 函数
VFP9: BITAND(nNumericexpression_r1, nNumericexpression_r2, ... , nNumericexpression_r26)
或者 BITAND(Binaryexpression_r1, Binaryexpression_r2, ... , Binaryexpression_r26) VFP6: BITAND(nexpression_r1, nexpression_r2)
链接:与此函数类似,BITOR( ) 函数、BITXOR( ) 函数也作了类似的改进或增强,下面将不再介绍它们。
说明: 在VFP9中可以对多个表达式进行按位与操作,并且可以对二进制表达式进行按位与操作。