| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2420 人关注过本帖
标题:请教一下STREXTRACT()中各个参数的使用?特别是第5个
只看楼主 加入收藏
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1533
专家分:180
注 册:2006-6-3
结帖率:79.38%
收藏
已结贴  问题点数:20 回复次数:23 
请教一下STREXTRACT()中各个参数的使用?特别是第5个
请教一下STREXTRACT()中各个参数的使用?特别是第5个
请结合下2个列子,请详细讲一下。帮助文件中看不懂,也没有具体例子。

STREXTRACT("李四,1980.01.01,.T.", ",", ",") && 显示字符串“1980.01.01”
 


STREXTRACT("李四,1980.01.01,.T.", "", ",")&& 显示字符串“李四”

搜索更多相关主题的帖子: 特别 字符串 
2013-01-21 15:35
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
举例:mm='abcdef-abcdf-tt'

ma=strextract(mm,'-','',1)
?ma  &&显示为abcdf
ma=strextract(mm,'-','',2)
?ma  &&显示为tt

2013-01-21 16:00
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1533
专家分:180
注 册:2006-6-3
收藏
得分:0 
mm='abcdef-abcdf-tt'

ma=strextract(mm,'-','',1)
?ma  &&显示为abcdf          &&不对显示的是abcdf-tt



最好针对我上面举的的2个例子讲介一下
主要是对个参数的理介。
起点分隔符为空是啥意思?


[ 本帖最后由 sylknb 于 2013-1-21 18:00 编辑 ]
2013-01-21 17:10
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用sylknb在2013-1-21 17:10:36的发言:

mm='abcdef-abcdf-tt'

ma=strextract(mm,'-','',1)
?ma  &&显示为abcdf          &&不对显示的是abcdf-tt



最好针对我上面举的的2个例子讲介一下。
主要是对个参数的理介。
起点分隔符为空是啥意思?
起点分隔符为空是啥意思?是从最头起

STREXTRACT("李四,1980.01.01,.T.", ",", ",") && 显示字符串“1980.01.01”

"李四,1980.01.01,.T."-----这字符串, ","-----这是指从哪起, ","-----这是指到哪止)


2013-01-21 18:04
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9821
专家分:27099
注 册:2012-2-5
收藏
得分:0 
STREXTRACT( ) 函数
取出两个分隔符之间的字符串。
语法:
STREXTRACT(表达式,表达式1,表达式2,数值,类型)
表达式:指定要搜索的字符串或字符串表达式。
表达式1:指定在[表达式]中的开始分隔符。
表达式2:指定在[表达式]中的结束分隔符。
数值:指定在[表达式]中何处出现[表达式1]便开始取出。
类型:指定控制搜索位置的类型。指定控制搜索位置的类型。在[类型]中指定提供一个位、值的数值,依照下列表格选项确定该位值:
位 值(附加的) 说明
0  1          不区分大小写搜索
1  2          不需要结束分隔符。指定在该搜索中不查找 cEndDelim, 的出现, 返回从 cBeginDelim 位置开
              始的 cSearchExpression 内容。
2  4          在返回的表达式中包含分隔符。

示例:
CSTR=[              <tr>
                <td><span>130120070 <b class="fw400 cred">17:41</b></span></td>
                <td><i class="ml6 i-ball i-b20_1">3</i><i class="ml6 i-ball i-b20_1">0</i><i class="ml6 i-
ball i-b20_1">4</i><i class="ml6 i-ball i-b20_1">4</i><i class="ml6 i-ball i-b20_1">1</i></td>
                <td><i class="ml6 i-ball i-b20_2">4</i><i class="ml6 i-ball i-b20_2">4</i><i class="ml6 i-
ball i-b20_2">1</i></td>
              </tr>
            
              <tr>
                <td><span>130120069 <b class="fw400 cred">17:31</b></span></td>
                <td><i class="ml6 i-ball i-b20_1">2</i><i class="ml6 i-ball i-b20_1">4</i><i class="ml6 i-
ball i-b20_1">7</i><i class="ml6 i-ball i-b20_1">7</i><i class="ml6 i-ball i-b20_1">5</i></td>
                <td><i class="ml6 i-ball i-b20_2">7</i><i class="ml6 i-ball i-b20_2">7</i><i class="ml6 i-
ball i-b20_2">5</i></td>
              </tr>
            
              <tr>
                <td><span>130120068 <b class="fw400 cred">17:21</b></span></td>
                <td><i class="ml6 i-ball i-b20_1">9</i><i class="ml6 i-ball i-b20_1">9</i><i class="ml6 i-
ball i-b20_1">4</i><i class="ml6 i-ball i-b20_1">2</i><i class="ml6 i-ball i-b20_1">7</i></td>
                <td><i class="ml6 i-ball i-b20_2">4</i><i class="ml6 i-ball i-b20_2">2</i><i class="ml6 i-
ball i-b20_2">7</i></td>
              </tr>]
将上面字符串中的红色数字提取出来
从上面的字符串提取到的内容,见下图
图片附件: 游客没有浏览图片的权限,请 登录注册

代码如下
程序代码:
FOR I=1 TO OCCURS([<tr>],CSTR)
    CSTR1=STREXTRACT(CSTR,[<tr>],[</tr>],I)
    B1=ALLTRIM(LEFT(DTOS(DATE()),2)+STREXTRACT(CSTR1,[<td><span>],[ <b class="fw400 cred">]))
    B2=STREXTRACT(CSTR1,[<i class="ml6 i-ball i-b20_1">],[</i>],1)+;
       STREXTRACT(CSTR1,[<i class="ml6 i-ball i-b20_1">],[</i>],2)+;
       STREXTRACT(CSTR1,[<i class="ml6 i-ball i-b20_1">],[</i>],3)+;
       STREXTRACT(CSTR1,[<i class="ml6 i-ball i-b20_1">],[</i>],4)+;
       STREXTRACT(CSTR1,[<i class="ml6 i-ball i-b20_1">],[</i>],5)   
    ?B1+[ ]+B2
ENDFOR
STREXTRACT()函数中,第5个参数的用法可以加到示例中自己体会吧,平时我是没用过。

坚守VFP最后的阵地
2013-01-21 19:47
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1533
专家分:180
注 册:2006-6-3
收藏
得分:0 
sdta:
你所提供的代码如何运行?前面的cstr是网页的内容它应放在代码何处?
2013-01-21 20:19
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9821
专家分:27099
注 册:2012-2-5
收藏
得分:15 
程序代码:
CSTR=[              <tr>
                <td><span>130120070 <b class="fw400 cred">17:41</b></span></td>
                <td><i class="ml6 i-ball i-b20_1">3</i><i class="ml6 i-ball i-b20_1">0</i><i class="ml6 i-
ball i-b20_1">4</i><i class="ml6 i-ball i-b20_1">4</i><i class="ml6 i-ball i-b20_1">1</i></td>
                <td><i class="ml6 i-ball i-b20_2">4</i><i class="ml6 i-ball i-b20_2">4</i><i class="ml6 i-
ball i-b20_2">1</i></td>
              </tr>
           
              <tr>
                <td><span>130120069 <b class="fw400 cred">17:31</b></span></td>
                <td><i class="ml6 i-ball i-b20_1">2</i><i class="ml6 i-ball i-b20_1">4</i><i class="ml6 i-
ball i-b20_1">7</i><i class="ml6 i-ball i-b20_1">7</i><i class="ml6 i-ball i-b20_1">5</i></td>
                <td><i class="ml6 i-ball i-b20_2">7</i><i class="ml6 i-ball i-b20_2">7</i><i class="ml6 i-
ball i-b20_2">5</i></td>
              </tr>
           
              <tr>
                <td><span>130120068 <b class="fw400 cred">17:21</b></span></td>
                <td><i class="ml6 i-ball i-b20_1">9</i><i class="ml6 i-ball i-b20_1">9</i><i class="ml6 i-
ball i-b20_1">4</i><i class="ml6 i-ball i-b20_1">2</i><i class="ml6 i-ball i-b20_1">7</i></td>
                <td><i class="ml6 i-ball i-b20_2">4</i><i class="ml6 i-ball i-b20_2">2</i><i class="ml6 i-
ball i-b20_2">7</i></td>
              </tr>]
FOR I=1 TO OCCURS([<tr>],CSTR)
    CSTR1=STREXTRACT(CSTR,[<tr>],[</tr>],I)
    B1=ALLTRIM(LEFT(DTOS(DATE()),2)+STREXTRACT(CSTR1,[<td><span>],[ <b class="fw400 cred">]))
    B2=STREXTRACT(CSTR1,[<i class="ml6 i-ball i-b20_1">],[</i>],1)+;
       STREXTRACT(CSTR1,[<i class="ml6 i-ball i-b20_1">],[</i>],2)+;
       STREXTRACT(CSTR1,[<i class="ml6 i-ball i-b20_1">],[</i>],3)+;
       STREXTRACT(CSTR1,[<i class="ml6 i-ball i-b20_1">],[</i>],4)+;
       STREXTRACT(CSTR1,[<i class="ml6 i-ball i-b20_1">],[</i>],5)  
    ?B1+[ ]+B2
ENDFOR
将上面内容放在PRG文件内,执行该PRG文件。

坚守VFP最后的阵地
2013-01-21 20:29
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1533
专家分:180
注 册:2006-6-3
收藏
得分:0 
提示:有不可识别的命令与短语
图片附件: 游客没有浏览图片的权限,请 登录注册

 
但采用把cstr的内容单独变成文本文件,然后用cstr=Filetostr( "cstr.txt"),再采用for,,,,,的代码,取出的内容前面部分相同,后面有所不同
见图
2013-01-21 20:47
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9821
专家分:27099
注 册:2012-2-5
收藏
得分:0 
你的VFP是什么版本,你是不是用了第5个参数
      STREXTRACT(CSTR1,[<i class="ml6 i-ball i-b20_1">],[</i>],3)+;
是在这条命令中加的第5个参数吧

[ 本帖最后由 sdta 于 2013-1-21 20:59 编辑 ]

坚守VFP最后的阵地
2013-01-21 20:58
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1533
专家分:180
注 册:2006-6-3
收藏
得分:0 
2.rar (752 Bytes)
没有vfp9
2013-01-21 21:10
快速回复:请教一下STREXTRACT()中各个参数的使用?特别是第5个
数据加载中...
 
   



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

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