| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 205 人关注过本帖
标题:怎样由课务分工.txt 动态生成教师任课表(jsrkb.dbf)
只看楼主 加入收藏
王咸美
Rank: 1
等 级:新手上路
帖 子:711
专家分:3
注 册:2018-1-4
结帖率:97.67%
收藏
 问题点数:20 回复次数:5 
怎样由课务分工.txt 动态生成教师任课表(jsrkb.dbf)
现有 课务分工.txt文本文件,怎样动态生成如图所示的教师任课表(jsrkb.dbf),请高手赐教,万分感谢!!!
要求:
1、都是字符型字段,宽度除了 “班级”为7,其他字段宽度均为6;
2、字段由课务分工.txt中的内容动态生成,如“一年级(1)班语文”中的“语文”,依此类推;
3、由课务分工.txt动态生成如图所示的教师任课表jsrkb.dbf

课务分工.rar (2.3 KB)

生成的教师任课表如下图所示:
图片附件: 游客没有浏览图片的权限,请 登录注册


附:课务分工.txt(部分内容)详见附件
001      曹文亮      一年级(2)班美术,四年级(3)班品社,计4节
002      曹小虎      五年级(2)班科学,五年级(2)班数学,五年级(2)班信息,计8节
003      曹艳      四年级(4)班科学,四年级(4)班数学,四年级(4)班体育,四年级(4)班信息,计10。      
004      陈杰      四年级(1)班英语,四年级(1)班劳动,四年级(1)班英阅,四年级(2)班英语,四年级(2)班劳动,四年级(2)班英阅,四年级(4)班英语,四年级(4)班劳动,四年级(4)班英阅,计15节
005      陈金玉      四年级(6)班班会,四年级(6)班语文,四年级(6)班美术,四年级(6)班信息,四年   级(6)班语阅,计11节
006      陈留英      六年级(1)班语文,六年级(1)班音乐,六年级(1)班语阅,计8节
007      陈苏艳      四年级(3)班班会,四年级(3)班英语,四年级(3)班英阅,四年级(5)班英语,四年级(5)班劳动,四年级(5)班英阅,四年级(6)班英语,四年级(6)班劳动,四年级(6)班英阅,计15节
008      陈天明      三年级(1)班音乐,三年级(2)班音乐,三年级(6)班音乐,四年级(1)班音乐,四年级(3)班音乐,五年级(1)班音乐,五年级(2)班音乐,五年级(3)班音乐,计16节

前天 19:56
sw3929
Rank: 2
等 级:论坛游民
帖 子:29
专家分:22
注 册:2019-3-29
收藏
得分:0 
我不是高手,看法是,先用文件函数fopen()打开文本,再用文件函数逐行读取,按宽度写入dbf表
昨天 05:57
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2260
专家分:4048
注 册:2007-4-27
收藏
得分:0 
是前一个帖子的翻版,稍作修正,请测试
      *****************
      * 将TXT文档内容,按需要转换DBF的教师任课安排表中
      * 2025-4-2星期三
      *****************
      CLEAR ALL
      SET TALK OFF
      SET SAFETY OFF
      PUBLIC k1,k2,nn,zfcall,i,zfc,cnj,cbj,cxk,xm
      CLOSE DATABASES
      CREATE TABLE njbj(nj c(6),bj c(7))
      FOR i=1 to 6
        FOR j=1 to 6
          SELECT njbj
          APPEND BLANK
          REPLACE bj with [(]+ALLTRIM(STR(j))+[)班]
          DO case
            CASE i=1
              REPLACE nj with [一年级]
            CASE i=2
              REPLACE nj with [二年级]
            CASE i=3
              REPLACE nj with [三年级]
            CASE i=4
              REPLACE nj with [四年级]
            CASE i=5
              REPLACE nj with [五年级]
            CASE i=6
              REPLACE nj with [六年级]      
          ENDCASE
        ENDFOR
      ENDFOR
      CLOSE DATABASES
      SELECT 0
      USE jsrkb alia bmk
      ZAP
      APPEND FROM njbj
      lcFile = FILETOSTR("课务分工.TXT")
      lnLines = ALINES(laLines, lcFile, .T., CHR(13) + CHR(10))
      FOR EACH lcLine IN laLines
         lnFields = ALINES(laFields, lcLine, .T., CHR(9))  
         IF lnFields < 3
            LOOP  && 跳过不完整行
         ENDIF
         xm = ALLTRIM(laFields[2])
         zfcall = ALLTRIM(laFields[3])
         k1=1
         nn=OCCURS([,],zfcall)
         FOR i=1 to nn
            k2=AT([,],zfcall,i)  
            zfc=SUBSTR(zfcall,k1,k2-k1)
            cnj=SUBSTR(zfc,1,6)  
            cbj=SUBSTR(zfc,7,7)   
            cxk=SUBSTR(zfc,14)   
            k1=k2+2
            SELECT bmk
            LOCATE for bmk.nj=cnj and bmk.bj=cbj
            IF FOUND()
               REPLACE &cxk. with xm
            ENDIF
         ENDFOR
      ENDFOR      
      CLOSE ALL
      SET SAFETY ON
      SET TALK ON
      MESSAGEBOX("数据转换完成!", 64, "提示:")
      QUIT



[此贴子已经被作者于2025-4-2 08:57编辑过]


只求每天有一丁点儿的进步就可以了
昨天 08:44
王咸美
Rank: 1
等 级:新手上路
帖 子:711
专家分:3
注 册:2018-1-4
收藏
得分:0 
谢谢你的热心指点!程序运行正常。但我想jsrkb.dbf中的字段由 课务分工.txt中的内容动态生成,如遇到“一年级(1)班语文”则生成“语文”字段,遇到“三年级(3)班美术”则生成“美术”字段,……直到所有学科的字段生成完毕,也就是说jsrkb的结构是动态生成的,字段名、字段个数由“课务分工.txt"的内容决定的。不知程序能否实现,请予指导。

[此贴子已经被作者于2025-4-2 10:33编辑过]

昨天 10:28
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2260
专家分:4048
注 册:2007-4-27
收藏
得分:0 
以下是引用王咸美在2025-4-2 10:28:26的发言:

谢谢你的热心指点!程序运行正常。但我想jsrkb.dbf中的字段由 课务分工.txt中的内容动态生成,如遇到“一年级(1)班语文”则生成“语文”字段,遇到“三年级(3)班美术”则生成“美术”字段,……直到所有学科的字段生成完毕,也就是说jsrkb的结构是动态生成的,字段名、字段个数由“课务分工.txt"的内容决定的。不知程序能否实现,请予指导。


可以实现的,要后半月有时间调试

只求每天有一丁点儿的进步就可以了
昨天 11:27
王咸美
Rank: 1
等 级:新手上路
帖 子:711
专家分:3
注 册:2018-1-4
收藏
得分:0 
谢谢你!静候佳音!

[此贴子已经被作者于2025-4-2 15:14编辑过]

昨天 12:02
快速回复:怎样由课务分工.txt 动态生成教师任课表(jsrkb.dbf)
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019116 second(s), 11 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved