| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5133 人关注过本帖
标题:问ASCAN函数问题?
取消只看楼主 加入收藏
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
结帖率:98.98%
收藏
已结贴  问题点数:20 回复次数:4 
问ASCAN函数问题?
ASCAN(ArrayName, eExpression [, nStartElement [, nElementsSearched [, nSearchColumn [, nFlags ]]]])
我要不分大小写,这几个参数,怎么看的,看不懂。nFd=Ascan(aMyAry,ary1(nCount),1,0,0,1) &&或者 nFd=Ascan(aMyAry,upper(ary1(nCount)))
nFd=Ascan(aMyAry,ary1(nCount),1,0,0,1),我是1个个试,才试出这个。。
目前AFIELDS(aMyAry,Alias())的全是大写的,所以我用upper(ary1(nCount)),万一,改天,AFIELDS(aMyAry,Alias())变为小写了,怎么办。所以还是要在Ascan()搞。

local ary1(5)
ary1(1)="Name1"
ary1(2)="Name2"
ary1(3)="Name3"
ary1(4)="Name4"
ary1(5)="Name5"
Create Cursor tmp(Name1 C(20),Name2 L,Name3 N(20),Name4 B(2),Name5 L)
nFieldNum=AFIELDS(aMyAry,Alias())

FOR nCount = 1 TO alen(ary1)
    nFd=Ascan(aMyAry,ary1(nCount),1,0,0,1) &&或者 nFd=Ascan(aMyAry,upper(ary1(nCount)))
    if nFd>0
       ?"Ok ",ary1(nCount)
    else
       ?"Err ",ary1(nCount)
    endif
endfor

[此贴子已经被作者于2016-2-29 12:21编辑过]

搜索更多相关主题的帖子: local 
2016-02-29 11:34
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
参数
ArrayName
指定要在其中进行搜索的数组。
eExpression
指定要搜索的常规表达式。
nStartElement
指定开始搜索的元素号(含此元素)。如果忽略参数 nStartElement,则默认搜索整个数组。
nElementsSearched
指定要搜索的元素数目。如果忽略参数 nStartElement 和 nElementsSearched,将从第一个元素开始搜索,如果忽略参数 nSearchColumn,将搜索到最后一个元素。 注意:
有两种方式可以引用二维内存变量数组中的某个元素。第一种方法为引用确定元素在数组的第几行和第几列的两个下标值,另一种方法为使用元素编号。此函数和其他操作二维数组的函数需要元素的编号值 ( nStartElement 和 nElementsSearched )。使用 AELEMENT() 函数可将二维数组中元素的行列下标值转换成编号。
nSearchColumn
指定要搜索的列。这通常在由 AFIELDS() 这样的函数创建的数组中是有用的。可以用 0 或一个负数的 nSearchColumn 来影响整个数组的搜索。如果使用大于 0 的 nSearchColumn, ASCAN() 处理特定的列为一个一维数组, 用各行中的数据作为搜索元素。例如, 下面示例只搜索第二列的第三和第四个元素 (而不是整个数组)。
要不分大小写,
ASCAN(ArrayName, eExpression [, nStartElement [, nElementsSearched [, nSearchColumn [, nFlags ]]]])
在nFlags参数?但帮助文件,怎么nFlags的值表有2个的。

图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2016-2-29 11:58编辑过]

2016-02-29 11:35
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
ASCAN(ArrayName, eExpression [, nStartElement [, nElementsSearched [, nSearchColumn [, nFlags ]]]])
因为nFlags在最后1个,那我前面的参数,忽略的话,怎么写。。。
2016-02-29 11:40
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
public a1(2)
a1(1)="b"
a1(2)="a"
MyAscan(@a1)
FUNCTION MyAscan(ArrayName, eExpression, nFlags)
LOCAL nPara
nPara=PARAMETERS()
?TYPE("ArrayName")
?TYPE("ArrayName",1)
?ALEN(ArrayName)
ENDFUNC
如果我调用MyAscan()时,我MyAscan(a1),在ALEN()会提示,不是数组,但我用MyAscan(@a1),就正常,
问题,怎么系统提供的函数,如Ascan(),我们在调用时,怎么不需要家@?难道他里面有处理的?还是自己定义的函数,参数为数组时,要在前面加@??
2016-02-29 16:04
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
回复 13楼 liuxingang28
3. 若要忽略 nFlag 之前的可选参数(nStartElement, nElementsSearched, nSearchColumn),可将其统一设置为 -1(其他负数也可以)
其他的函数,如果是数值参数,忽略的话,也都是写 -1?
2016-03-02 14:54
快速回复:问ASCAN函数问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016032 second(s), 10 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved