在VFP中 iINLIST 函数是啥意思

作者&投稿:人泥 (若有异议请与网页底部的电邮联系)
vfp中,inlist函数还可用什么表示?~

答:可用以下方式得到相同的结果:

*** 方法之一:
CLEAR
cSeasonName = ""
yue = MONTH(DATE())
DO CASE
CASE BETWEEN(yue, 3, 5)
cSeasonName = "春"
CASE BETWEEN(yue, 6, 8)
cSeasonName = "夏"
CASE BETWEEN(yue, 9, 11)
cSeasonName = "秋"
OTHERWISE
cSeasonName = "冬"
ENDCASE
?cSeasonName

*** 方法之二:
cSeasonName = ""
yue = MONTH(DATE())
DO CASE
CASE yue >= 3 AND yue <= 5
cSeasonName = "春"
CASE yue >= 6 AND yue <= 8
cSeasonName = "夏"
CASE yue >= 9 AND yue <= 11
cSeasonName = "秋"
OTHERWISE
cSeasonName = "冬"
ENDCASE
?cSeasonName

*** 方法之三:
cSeasonName = ""
yue = MONTH(DATE())
yue = PADL(ALLTRIM(STR(MONTH(DATE()))), 2, "0")
DO CASE
CASE yue $ "03, 04, 05"
cSeasonName = "春"
CASE yue $ "06, 07, 08"
cSeasonName = "夏"
CASE yue $ "09, 10, 11"
cSeasonName = "秋"
CASE yue $ "12, 01, 02"
cSeasonName = "冬"
ENDCASE
?cSeasonName

*** 晕了没?没晕的话再来几个怎麼样?嘿嘿嘿...

*** 另外,你那堆语句不对!我给你纠正一下,请你特仔细地对比一下:
CLEAR
cSeasonName = ""
yue = MONTH(DATE())
DO CASE
CASE INLIST(yue, 3, 4, 5)
cSeasonName = "春"
CASE INLIST(yue, 6, 7, 8)
cSeasonName = "夏"
CASE INLIST(yue, 9, 10, 11)
cSeasonName = "秋"
CASE INLIST(yue, 12, 1, 2)
cSeasonName = "冬"
ENDCASE
?cSeasonName
?

INLIST使用之后返回的是一个布尔值(.T. 或 .F.),用于检测某个变量(第一个参数)的内容是否包含在随后的数据列表中,如:INLIST(nX, 3,6,9) 表示变量 nX 如果等于数值3、6、9中的任何一个,就返回 .T.,否则为 .F. 。该函数的第一个参数是待测变量,从第二个参数开始的以逗号分隔的若干的常量或变量都属于样本参数。这是个很灵活的函数,扩展用法是把第一个参数定为常量,其他参数定为变量,可以实现很有趣的侦测功能。

INLIST( ) 函数

确定一个表达式是否匹配一组表达式中的某个表达式。

INLIST(eExpression1, eExpression2 [, eExpression3 ...])

参数
eExpression1
指定
INLIST( ) 要在
表达式组中搜索的表达式。

eExpression2[,
eExpression3...]
指定搜索的表达式组。
至少
必须包含一个表达式(eExpression2),最多可以包含
25 个表达式(eExpression2、eExpression3 等)。表达式组中的所有表达式必须具有相同的数据类型。

返回值

逻辑型或 null 值

说明

如果在表达式组中找到了该表达式,INLIST( ) 返回真(.T.);否则,INLIST( ) 返回假(.F.)。如果 eExpression1

null 值,则返回 null 值。如果 eExpression1 不是 null 值、eExpression1
没有匹配其他表达式并且其它表达式中至少有一个表达式是
null 值时,也会返回
null 数值。

示例

在这个示例中,INLIST( ) 确定当前月份属于一年中的哪个季度。当前月份被保存到变量 gcMonth 中,每个
CASE 语句利用 INLIST( ) 来确定一连串月份名称中是否能找到 gcMonth 的内容。返回的季度名被保存到变量
gcReporTitle 中。

复制代码

SET TALK ON
STORE CMONTH(DATE( )) TO gcMonth
DO CASE
CASE INLIST(gcMonth,'January','February','March')
STORE 'First Quarter' TO gcReporTitle
CASE INLIST(gcMonth,'April','May','June')
STORE 'Second Quarter' TO gcReporTitle
CASE INLIST(gcMonth,'July','August','September')
STORE 'Third Quarter' TO gcReporTitle
OTHERWISE
STORE 'Fourth Quarter' TO gcReporTitle
ENDCASE
WAIT WINDOW gcReporTitle

有这么个函数吗?至多是自定义函数吧