| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 332 人关注过本帖
标题:这段代码无法正常运行
只看楼主 加入收藏
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2272
专家分:4089
注 册:2007-4-27
收藏
得分:0 
以下是引用csyx在2025-4-11 17:54:21的发言:

前面ds生成的代码跟垃圾差不了多少,给你段人写的代码吧
Local cc, ii
Local c科目, c班级, c分工, c教师
Local array a字段[1], a科目[1], aTemp[1]

Close Databases
Create cursor 任课表 (序号 I, 班级 V(20))
c科目 = '班会,道法,品社,科学,语文,数学,英语,体育,音乐,美术,劳动,信息,综合,语阅,英阅,自习1,自习2'
For ii = 1 to ALines(m.a科目, m.c科目, 1+4, ',')
    m.c科目 = m.a科目[m.ii]
    Alter table 任课表 add column &c科目 V(10)
EndFor
Index on 班级 tag 班级

Create Cursor 课务分工 (序号 V(3), 教师 V(10), 分工 V(254))
Append From 课务分工.txt DELIMITED with tab
Scan all
    m.c教师 = 教师
    m.c分工 = Strtran(分工, ',', ',')
    For ii = 1 to ALines(aTemp, m.c分工, 1+4, ',')
        m.cc = aTemp[m.ii]
        If Like('??年级(*)班*', m.cc)
            m.c班级 = StrExtract(m.cc, '', '班', 1, 4)
            m.c科目 = Strtran(m.cc, m.c班级, '')
            If !Seek(m.c班级, '任课表')
                Insert into 任课表 (班级) Values (m.c班级)
            EndIf
            Replace next 1 (m.c科目) with m.c教师 in 任课表
        EndIf
    EndFor
EndScan
Use in 课务分工

Update 任课表 set 序号 = Val(Chrtranc(Leftc(班级,1), '一二三四五六', '123456'))*1000 ;
                        + Val(StrExtract(班级,'(',')'))
Select * from 任课表 order by 序号 into dbf jsrkb
Use in 任课表
Alter table jsrkb alter column 序号 V(3)
Update jsrkb set 序号 = Padl(Recno(), 3, '0')
Locate
Browse nowait


代码很好——短小精悍,我用的是 VFP8.0 有些不能识别,改了一下就好用了,谢谢!

只求每天有一丁点儿的进步就可以了
3 天前 10:33
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:774
专家分:3010
注 册:2018-3-13
收藏
得分:0 
ds生成的代码就不用考虑了。草草看了一下,至少存在十处以上的错误或不妥,即使你把所有的语法错误都更正并运行通过了也没用。语法上的错误通过训练应该容易改进,然而代码中存在的算法逻辑混乱就不清楚它能否自己纠正了。例如,收集所有班级的算法中,它只从每位教师第1个分管项中提取,这样一来,不在所有教师第1个分管项中的班级都会丢失 ...... 权且当它是一个超级搜索引擎吧,至少能帮人类把解题所需的原材料一股脑弄来

另:突然发现解题思路被ds带坑里了,当遇到课务分工.txt第三列超出vfp字段最大254字符限制时 append from ...  deli with tab 行不通



[此贴子已经被作者于2025-4-12 13:22编辑过]


这家伙很懒,啥也没留下
3 天前 12:05
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2272
专家分:4089
注 册:2007-4-27
收藏
得分:0 
是不是用数组,可以超越 254 这个宽度的限制?

只求每天有一丁点儿的进步就可以了
3 天前 13:28
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:774
专家分:3010
注 册:2018-3-13
收藏
得分:0 
以下是引用wengjl在2025-4-12 13:28:27的发言:
是不是用数组,可以超越 254 这个宽度的限制?

超长内容存到备注字段内就好。只是备注字段就无法用 appe from ... 导入了,好在这种应用场景,数据量极小,自己解析都很快
ttt.rar (1.44 KB)
随手添加了几处原始数据意外情况(参见:课务分工.txt)的处理


这家伙很懒,啥也没留下
3 天前 14:19
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2272
专家分:4089
注 册:2007-4-27
收藏
得分:0 
感谢您的回复!

只求每天有一丁点儿的进步就可以了
3 天前 14:21
王咸美
Rank: 1
等 级:新手上路
帖 子:727
专家分:3
注 册:2018-1-4
收藏
得分:0 
如果“课务分工.txt"格式如下,代码应如何改?盼指点!
 001      曹文亮:    一(2)美术,四(3)品社,计4节
 002      曹小虎:    五(2)科学,五(2)数学,五(2)信息,计8节
 

[此贴子已经被作者于2025-4-12 20:02编辑过]

3 天前 16:37
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2272
专家分:4089
注 册:2007-4-27
收藏
得分:0 
If Like('??年级(*)班*', m.cc)
把这一行中的  年级 班 3个字去掉试试

只求每天有一丁点儿的进步就可以了
前天 08:47
王咸美
Rank: 1
等 级:新手上路
帖 子:727
专家分:3
注 册:2018-1-4
收藏
得分:0 
谢谢!
前天 09:48
快速回复:这段代码无法正常运行
数据加载中...
 
   



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

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