| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1580 人关注过本帖
标题:请教替换问题
只看楼主 加入收藏
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
结帖率:73.44%
收藏
已结贴  问题点数:20 回复次数:2 
请教替换问题
先生们好,有一个12行30列的原表(字符型),当屏幕输入一个字符,这个字符与原表中的每一个值去比试,若原表中一个位置的值包含输入的值时则"搜索结果.dbf"中记录1,否则记录0(这样下来搜索结果中也有12行30列),如原表中一个值是"大家好",而输入的是"大家"或"家好"或"大家好",则搜索结果中的这个位置记录的是数字1,gik 否则搜索结果中的这个位置记录的是数字0,也就是输入的值要包含于原表的值,谢谢先生
CLEAR
CLOSE  all
SET SAFETY OFF
set talk off
input '请输入一个想搜索的字符:' to JS
*---------------
USE 搜索结果
PACK
ZAP
SELECT 1
USE 原表
DIMENSION YB(12,30)
select * from 原表 into array YB
CLOSE ALL
*-------------------------------------------------------
FOR a=1 TO 12
  APPEND BLANK        
 FOR b=1 TO 30
 * 以下的yb(a,b)==js不是要求精确相等,而是只要js的字符包含在yb(a,b)内就在“搜索结果.dbf”中记录1,否则记录0
            if yb(a,b)==js   
                 REPLACE  ('列'+ALLTRIM(STR(b))) WITH  1                 
              ELSE
                REPLACE  ('列'+ALLTRIM(STR(b))) WITH  0  
            ENDIF
 ENDFOR
ENDFOR
?' 本次运行结束'
CLOSE ALL
DELETE FILE *.BAK
BROWSE

但运行不对,谢谢
请教.rar (1.86 KB)

搜索更多相关主题的帖子: 字符 结果 输入 搜索 记录 
2020-05-24 18:20
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9799
专家分:26886
注 册:2012-2-5
收藏
得分:20 
程序代码:
CLOSE DATABASES 
*ACCEPT '请输入一个想搜索的字符:' to JS
js = INPUTBOX("请输入一个想搜索的字符:") && 此行为VFP9代码
USE 搜索结果 IN 0
ZAP 
USE 原表 IN 0 
SELECT 原表
SCAN 
    SCATTER FIELDS LIKE* TO aa
    LOCAL bb [1, ALEN(aa, 1)]
    FOR i = 1 TO ALEN(aa, 1)
        bb[1, i] = IIF(js $ aa[i], 1, 0)
    ENDFOR  
    INSERT INTO 搜索结果 FROM ARRAY bb
ENDSCAN
SELECT 搜索结果
BROWSE 

坚守VFP最后的阵地
2020-05-24 19:21
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 2楼 sdta
谢谢先生的正确解答,谢谢啦!
2020-05-26 09:37
快速回复:请教替换问题
数据加载中...
 
   



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

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