标题:为什么会产生循环?
取消只看楼主
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分:0
注 册:2013-3-2
结帖率:100%
已结贴  问题点数:20 回复次数:8 
为什么会产生循环?
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
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
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分:0
注 册:2013-3-2
得分:0 
回复 9楼 瓜瓜1990
不能存盘,不行啊!
2020-06-22 19:05
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分:0
注 册:2013-3-2
得分:0 
回复 11楼 瓜瓜1990
“只把原先定义的函数的代码放表单的过程里就好了.”
无论放在哪,都不认。我是第一次使用FUNCTION……ENDFUNC,才知道与PROCEDURE不一样。
而作为.prg单独使用很好。

[此贴子已经被作者于2020-6-23 09:42编辑过]

2020-06-23 08:50
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分:0
注 册:2013-3-2
得分:0 
FUNCTION……ENDFUNC在.prg中使用很好,但是不被表单接受。哪位高手曾经在表单中使用过FUNCTION……ENDFUNC成功的案例,希望分享!
2020-06-23 11:06



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




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

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