| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1186 人关注过本帖
标题:一道程序题,答案好像是foxpro.不确定,也不是很理解这个程序的意思。
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
这个代码其实很容易看。for循环中的if判断,把所有不是英文字母(包括大小写)的字符全部抛弃,只处理英文字母。如果那个字符是英文字母,就取字母表中后面那一个字母,全部就只有5个字母,一查字母表就得结果。

授人以渔,不授人以鱼。
2012-03-09 01:21
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 10楼 lygcw9603
那个PATH_没有问题,作为变量名是允许的,但他根本就不是你们理解的那个问题,只是他语文表述能力非常古怪。他的程序原先在某台机上运行正常,说明这个代码是没有问题的,然后他把程序复制到另一台机上的D:盘什么地方,就开始不行了,显然就是无法在那个PATH_指向的路径中找到所需要的文件,换言之这个路径不是他所需要的,不是这个变量不存在。解答就是我上次给某个人说过的那样。

[ 本帖最后由 TonyDeng 于 2012-3-9 01:26 编辑 ]

授人以渔,不授人以鱼。
2012-03-09 01:24
lygcw9603
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:233
专家分:357
注 册:2006-8-27
收藏
得分:0 
回复 12楼 TonyDeng
按你的分析,应该至少还有一个目录(文件夹)存在。
2012-03-09 01:26
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
目录就是VFP的安装目录,但他的数据文件不在那里。他把找不到数据文件说成是这个目录不存在——因为他觉得既然找不到文件就应该是目录不存在。

授人以渔,不授人以鱼。
2012-03-09 01:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
他那个问题其实是我以前碰到过无数次的问题,测试了很久才知道是怎么回事的,因为最大的麻烦是偶尔没问题的,很难发现。如果不是把程序分发到各种各样不同的环境中,根本就没觉察存在这样的问题。

授人以渔,不授人以鱼。
2012-03-09 01:31
lygcw9603
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:233
专家分:357
注 册:2006-8-27
收藏
得分:0 
以下是引用TonyDeng在2012-3-9 01:28:16的发言:

目录就是VFP的安装目录,但他的数据文件不在那里。他把找不到数据文件说成是这个目录不存在——因为他觉得既然找不到文件就应该是目录不存在。
就是说,VFP安装完成后,默认目录为VFP的系统目录,如果在工具选项中,人为的把文件位置中的默认目录改写了,SYS(5)就会把改写后的默认目录视为默认目录。现在他的情况是,默认目录还为VFP系统目录,应该这样理解吧。
经测试,如你所讲。精辟,佩服。



[ 本帖最后由 lygcw9603 于 2012-3-9 01:44 编辑 ]
2012-03-09 01:32
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
其实,你只要启动斋FoxPro,马上在Command窗口输入? sys(5)+sys(2003)看看,就知道它指向哪里了。他企图用这样的函数来获得实际放在D:盘的路径,当然不行了。但偶然的,如果他把程序编译成.EXE,那么sys(5)又会获得D:了。因为sys()函数取的是启动文件的路径,在IDE下,启动的是vfp9.exe,故路径是vfp9.exe所在的路径,而在编译.exe下,sys(5)得到的就是这个.exe所在的盘符——其实是Project文件中设定的路径,如果Project和.exe不在同一个目录,那又不行了。

[ 本帖最后由 TonyDeng 于 2012-3-9 01:42 编辑 ]

授人以渔,不授人以鱼。
2012-03-09 01:40
lygcw9603
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:233
专家分:357
注 册:2006-8-27
收藏
得分:0 
表单事件代码编写问题
这个问题的楼主,和PATH_问题的楼主一样,基本上没有VFP的基础知识,因为单位的关系,赶鸭子上架,因此出现了前面提的问题。

[ 本帖最后由 lygcw9603 于 2012-3-9 01:54 编辑 ]
2012-03-09 01:51
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 楼主 快乐至上
程序代码:
?cc("123E%n  w$04q*5n6")


 function cc 
    para  cstr
    cresult=space(0)
    for n=1 to len(allt(cstr))                                && 对cStr逐个字符处理
        c=substr(cstr,n,1)                                    && 提取的字符放入变量c
        if !between(c,"A","Z") and !between(c,"a","z")        && 如果c的字符不在"A"-"Z"和"a"-"z"范围内
           loop                                                && 跳转到下一次循环,忽略后面的代码
        endif
        cresult=cresult+chr(asc(c)+1)                        && 假如前面的跳转没有发生,就继续执行这里的代码
    endfor
    return cresult

 endfunc               

授人以渔,不授人以鱼。
2012-03-09 01:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
这代码,楼主估计是难以理解loop的用法,先把程序变换成如下代码,应该好理解了,一样的效果:

程序代码:
function cc
    para  cstr
     cresult=space(0)
     for n=1 to len(allt(cstr))
         c=substr(cstr,n,1)
         if between(c,"A","Z") .or. between(c,"a","z")
             cresult=cresult+chr(asc(c)+1)
         endif
     endfor
     return cresult

 endfunc          

授人以渔,不授人以鱼。
2012-03-09 13:15
快速回复:一道程序题,答案好像是foxpro.不确定,也不是很理解这个程序的意思。
数据加载中...
 
   



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

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