| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2513 人关注过本帖
标题:如何由课表文件(课表20180920.txt)生成各班教师任课表(jsrkb1.dbf)
只看楼主 加入收藏
王咸美
Rank: 1
等 级:新手上路
帖 子:582
专家分:0
注 册:2018-1-4
结帖率:97.04%
收藏
已结贴  问题点数:20 回复次数:7 
如何由课表文件(课表20180920.txt)生成各班教师任课表(jsrkb1.dbf)
现有文本文件 课表20180920.txt,各班教师仼课表jsrkb1.dbf(空表),如何由课表20180920.txt 生成 jsrkb1.dbf。我琢磨很久,无从下手,还请高手赐教,十分期盼,万分感谢!!!
课表20180920.rar (1.93 KB)

jsrkb1.rar (281 Bytes)
搜索更多相关主题的帖子: 生成 教师 dbf 文件 txt 
2020-04-22 07:22
厨师王德榜
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:199
帖 子:987
专家分:4946
注 册:2013-2-16
收藏
得分:5 
可以提供思路,代码没时间写 ,
我的思路是 第一步 ,先处理文本 ,把文本处理成这样的表LST1:
图片附件: 游客没有浏览图片的权限,请 登录注册

再 循环LST1,把数据填充进来:
图片附件: 游客没有浏览图片的权限,请 登录注册

其实很简单,无非是字串的截取处理,
外面再包一个循环,你自己应该可以搞定.
2020-04-22 09:37
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9801
专家分:26886
注 册:2012-2-5
收藏
得分:0 
效果
图片附件: 游客没有浏览图片的权限,请 登录注册

坚守VFP最后的阵地
2020-04-22 10:00
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9801
专家分:26886
注 册:2012-2-5
收藏
得分:15 
程序代码:
CLOSE DATABASES 
USE jsrkb1
ZAP 
INSERT INTO jsrkb1 (nj, bj) SELECT nj, bj FROM jsrkb
INDEX on nj + bj TAG nj
CREATE CURSOR tt (nj c(6), bj c(7), km c(6), jsxm c(10))
cStr = FILETOSTR("课表20180920.TXT")
nRows = ALINES(aa, cStr, 4 + 1, CHR(13) + CHR(10))
FOR i = 1 TO nRows
    nLen = ALINES(bb, aa[i], 4 + 1, "、", ":", ",")
    xm = bb[2]
    FOR ii = 3 TO nlen 
        cnj = LEFT(bb[ii], 2) + "年级"
        cbj = SUBSTR(bb[ii], 3, 5) + "班"
        ckm = SUBSTR(bb[ii], 8)
        INSERT INTO tt VALUES (cnj, cbj, ckm, xm)
    ENDFOR
ENDFOR
SELECT tt
REPLACE km WITH "班会" FOR ALLTRIM(km) == "班主任"
SET RELATION TO nj + bj INTO jsrkb1
SCAN 
    REPLACE (tt.km) WITH tt.jsxm IN jsrkb1
ENDSCAN
SET RELATION TO 
SELECT jsrkb1
SET ORDER TO 
BROWSE 

坚守VFP最后的阵地
2020-04-22 10:14
王咸美
Rank: 1
等 级:新手上路
帖 子:582
专家分:0
注 册:2018-1-4
收藏
得分:0 
@sdta 非常感谢!美中不足的是:多一行二年级(6)班,少六年级(6)班。
还请完善一下程序。再次感谢!
                     

[此贴子已经被作者于2020-4-22 17:49编辑过]

2020-04-22 12:25
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9801
专家分:26886
注 册:2012-2-5
收藏
得分:0 
程序代码:
CLOSE DATABASES 
USE jsrkb1
ZAP 
INDEX on nj + bj TAG nj
CREATE CURSOR tt (nj c(6), bj c(7), km c(6), jsxm c(10), bz n(2))
cStr = FILETOSTR("课表20180920.TXT")
nRows = ALINES(aa, cStr, 4 + 1, CHR(13) + CHR(10))
cc = "一二三四五六"
FOR i = 1 TO nRows
    nLen = ALINES(bb, aa[i], 4 + 1, "、", ":", ",")
    xm = bb[2]
    FOR ii = 3 TO nlen 
        cnj = LEFT(bb[ii], 2) + "年级"
        cbj = SUBSTR(bb[ii], 3, 5) + "班"
        nbz = VAL(STR((AT(LEFT(bb[ii], 2), cc) + 1) / 2, 1) + STREXTRACT(cbj, "(", ")"))
        ckm = SUBSTR(bb[ii], 8)
        INSERT INTO tt VALUES (cnj, cbj, ckm, xm, nbz)
    ENDFOR
ENDFOR
SELECT tt
REPLACE km WITH "班会" FOR ALLTRIM(km) == "班主任"
SELECT * FROM tt ORDER BY bz INTO CURSOR tt1
SELECT tt1
SET RELATION TO nj + bj INTO jsrkb1
SCAN 
    IF NOT FOUND("jsrkb1")
        INSERT INTO jsrkb1 (nj, bj) VALUES (tt1.nj, tt1.bj)
    ENDIF 
    REPLACE (tt1.km) WITH tt1.jsxm IN jsrkb1
ENDSCAN
SET RELATION TO 
SELECT jsrkb1
SET ORDER TO 
BROWSE 

图片附件: 游客没有浏览图片的权限,请 登录注册


坚守VFP最后的阵地
2020-04-22 13:15
王咸美
Rank: 1
等 级:新手上路
帖 子:582
专家分:0
注 册:2018-1-4
收藏
得分:0 
@sdta 非常感谢!问题已解决。
2020-04-22 13:39
王咸美
Rank: 1
等 级:新手上路
帖 子:582
专家分:0
注 册:2018-1-4
收藏
得分:0 
@sdta 非常感谢!问题已解决。
2020-04-22 17:14
快速回复:如何由课表文件(课表20180920.txt)生成各班教师任课表(jsrkb1.dbf)
数据加载中...
 
   



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

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