标题:为什么会产生循环?
只看楼主
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分:0
注 册:2013-3-2
结帖率:100%
已结贴  问题点数:20 回复次数:12 
为什么会产生循环?
WJTRAN.rar (9.1 KB)

由于表单不认FUNCTION...ENDFUNC语句,我使用.prg运行。但是不知哪里出了问题,点击程序文件,确定目录,接下来就失控了。拜请各位高手诊断参谋一下。
搜索更多相关主题的帖子: 点击 文件 循环 目录 运行 
2020-06-22 12:26
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分:0
注 册:2013-3-2
得分:0 
下面是程序代码:
SET SAFETY OFF           && 指定在改写已有文件时不显示对话框
SET TALK OFF            && 阻止对话结果发送到 Visual FoxPro 主窗口、系统信息窗口、图形状态栏或用户自定义窗口
SET SYSMENU OFF         && 在程序执行期间废止 Visual FoxPro 主菜单栏
SET DATE ANSI            && 设置中国日期格式为yy.mm.dd
SET HOURS TO 24            && 将时间设为24小时制
SET CENTURY ON            && 设置日期格式为带世纪的
SET PATH TO CURDIR()    && 设置当前路径为默认路径

PUBLIC wjno
wjno=0

DO WHILE wjno<5
DO CASE
CASE wjno=0 OR wjno=2
    DO FORM \Form\wjtran.scx
    READ EVENTS
CASE wjno=1
    DO wj01
    DO FORM \Form\wjtran.scx
    READ EVENTS
ENDCASE
ENDDO

PROCEDURE wj01    && 存档程序
WAIT

CREATE TABLE files0 (文件名 C(100), 文件大小 N(13), 修改日期 T, 类型 C(3), 路径 C(80))    && 创建表
listfiles([&listfiles])                        && 建立listfiles函数
FUNCTION ListFiles(tcFolder)                && 自定义路径函数
    LOCAL ARRAY laFiles[1]                    && 创建的数组laFiles,[1]表示一组。
    LOCAL lcFileName, ii
    m.tcFolder = ADDBS(m.tcFolder)            && 向路径表达式添加一个反斜杠。
    IF ADIR(m.laFiles, m.tcFolder + '*.*', 'AHRSD', 1) < 3        && 若是文件长度小于3个字节,则不计算。
        RETURN .F.
    ENDIF
    ASORT(m.laFiles, 3, -1, 1)                && 按第3列排序数组,最后一位数大于0为降序排序。
    FOR m.ii = 1 TO ALEN(m.laFiles, 1)        && 返回数组中元素、行或列的数目。
        m.lcFileName = m.laFiles[m.ii, 1]
        DO CASE
            CASE '.' == m.lcFileName Or '..' == m.lcFileName
            CASE AT('D', m.laFiles[m.ii, 5]) > 0                && 在一个字符表达式中查找另一个字符表达式出现的位置。
               ListFiles(m.tcFolder + m.lcFileName)
            OTHERWISE
                lafilesdt1=DTOC(m.lafiles[m.ii, 3])
                lafilesdt2=m.lafiles[m.ii, 4]
                m.lafiles[m.ii, 3]=CTOT([&lafilesdt1 &lafilesdt2])
                INSERT INTO files0 VALUES (m.lafiles[m.ii, 1], m.lafiles[m.ii, 2], m.lafiles[m.ii, 3], JUSTEXT(m.lafiles[m.ii, 1]), m.tcFolder)    && 将数据录入到表中。
        ENDCASE
    ENDFOR
wjno=0
RETURN
ENDFUNC                && 标识 FUNCTION 结构的结束。
2020-06-22 13:50
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分:0
注 册:2013-3-2
得分:0 
下面是表单【主目录】按钮代码:
listfiles=GETDIR()
wjno=1
DO \Prg\wjtran
USE files0
COPY TO files1

点击wjtran.prg之后,出现wjtran.scx界面;点击【主目录】之后,出现循环。
2020-06-22 13:54
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:5 
表单中有自定义方法,类似于自定义函数

坚守VFP最后的阵地
2020-06-22 14:50
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:565
专家分:1668
注 册:2017-7-16
得分:5 
对了,你的自定义函数要放进表单里面
2020-06-22 15:08
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分:0
注 册:2013-3-2
得分:0 
回复 4楼 sdta
如何在表单中建立自定义函数呢?
2020-06-22 16:00
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分:0
注 册:2013-3-2
得分:0 
回复 4楼 sdta
表单【新建方法程序】添加不了程序啊?
2020-06-22 16:47
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分:0
注 册:2013-3-2
得分:0 
到这一步,如何写代码?
2020-06-22 16:52
瓜瓜1990
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:18
帖 子:125
专家分:699
注 册:2020-2-25
得分:5 
打开表单的[属性]窗口->选择[方法程序]页框,最下边就是新添加的方法,双击就可以编辑

piu~piu~
2020-06-22 18:37
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分:0
注 册:2013-3-2
得分:0 
回复 9楼 瓜瓜1990
不能存盘,不行啊!
2020-06-22 19:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-502227-1-1.html




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

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