VB生成的文件名和文件号怎么对应起来?

a1ways1010 2020-06-29 10:44:41
现有原始文件:
班级 课程名称 教师
12c1 英语 张三
12c2 英语 张三
12c1 物理 李四
12c2 物理 李四
12w 数学 王五

需要处理的内容是:
1、根据班级名称和教师姓名分别建立文件(.csv格式),文件名为班级名称和教师姓名,输出表头
2、逐条(逐行)读取原始文件,把课程名称输出到相应文件

遇到的问题:
输出时可以指定输出到的文件名,但是文件号不知道怎么对应

为了方便演示,直接把数据赋值给数组a
Option Explicit
Option Base 0
Dim a(0 To 5, 1 To 3), b(1 To 5, 1 To 2), c(1 To 5, 1 To 2)
Private Sub Command1_Click()

Dim n As Integer, i As Integer, j As Integer, m As Integer
Dim k As Integer, t As Integer
Dim dic1 As Object, dic2 As Object

a(0, 1) = "班级": a(0, 2) = "课程名称": a(0, 3) = "教师"
a(1, 1) = "12c1": a(1, 2) = "英语": a(1, 3) = "张三"
a(2, 1) = "12c2": a(2, 2) = "英语": a(2, 3) = "张三"
a(3, 1) = "12c1": a(3, 2) = "物理": a(3, 3) = "李四"
a(4, 1) = "12c2": a(4, 2) = "物理": a(4, 3) = "李四"
a(5, 1) = "12w": a(5, 2) = "数学": a(5, 3) = "王五"

Set dic1 = CreateObject("Scripting.Dictionary") '定义班级字典
Set dic2 = CreateObject("Scripting.Dictionary") '定义教师字典

n = 1
For i = 1 To UBound(a, 1)
If Not dic1.Exists(a(i, 1)) Then
dic1.Add a(i, 1), "" '班级加入字典
If Dir(App.Path & "\学生课表", vbDirectory) = "" Then
MkDir App.Path & "\学生课表"
End If
Open App.Path & "\学生课表\" & a(i, 1) & ".csv" For Output As #(n + 1) '打开名称为n+1的文件
Print #(n + 1), "序号,课程" '输出表头
Close #(n + 1)
n = n + 1
End If
Next

m = 1
For j = 1 To UBound(a, 1)
If Not dic2.Exists(a(j, 3)) Then
dic2.Add a(j, 3), "" '教师姓名加入字典
If Dir(App.Path & "\教师课表", vbDirectory) = "" Then
MkDir App.Path & "\教师课表"
End If
Open App.Path & "\教师课表\" & a(j, 3) & ".csv" For Output As #(m + 1) '打开名称为n+1的文件
Print #(m + 1), "序号,课程" '输出表头
Close #(m + 1)
m = m + 1
End If
Next

For t = 1 To UBound(a, 1)
If dic1.Exists(a(t, 1)) Then
p = p + 1
Open App.Path & "\学生课表\" & a(t, 1) & ".csv" For Output As #(p + 1) '打开名称为n+1的文件
Print #(p + 1), p; ", "; b(t, 2)
Close #(p + 1)
End If

If dic2.Exists(a(t, 3)) Then
k = k + 1
Open App.Path & "\教师课表\" & a(t, 3) & ".csv" For Append As #(k + 1) '打开名称为n+1的文件
Print #(k + 1), k; ", "; c(t, 2)
Close #(k + 1)
End If
Next
End Sub


想要的效果如图:


学生课表和教师课表的文件夹已生成,已按照班级名称和教师名称生成不重复的文件
现在需要在逐条读取原始文件后,把相应信息添加到文件中(如图)
现在能让程序找到文件名,但是不知道怎么对应文件号。
请各位高手指点!
...全文
214 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
a1ways1010 2020-07-23
  • 打赏
  • 举报
回复
已用字典解决~~

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧