注册 登录
编程论坛 VFP论坛

如何将“知识竞赛人员名单.txt”读入jsmd.dbf中

王咸美 发布于 2023-02-11 15:26, 1157 次点击
如何动态建立表文件jsmd.dbf(以班级为字段名,班级很多,这里仅列举部分)?并将“知识竞赛人员名单.txt”读入jsmd.dbf中。请高手赐教,万分感谢!!!
(A1、A2、…N6为学生姓名)
知识竞赛人员名单.txt
三(1)班
A1
A2
A3
A4
A5
A6
三(2)班
B1
B2
B3
B4
B5
B6
B7
B8
三(3)班
C1
C2
C3
C4
C5
三(4)班
D1
D2
D3
D4
D5
D6
D7
四(1)班
E1
E2
E3
E4
E5
四(2)班
F1
F2
F3
F4
F5
F6
四(3)班
G1
G2
G3
G4
四(4)班
H1
H2
H3
H4
H5
四(5)班
J1
J2
J3
J4
五(1)班
K1
K2
K3
K4
K5
K6
五(2)班
L1
L2
L3
六(1)班
M1
M2
M3
M4
M5
六(2)班
N1
N2
N3
N4
N5
N6



[此贴子已经被作者于2023-2-11 16:02编辑过]

8 回复
#2
sdta2023-02-11 18:24
程序代码:
TEXT TO lcStr NOSHOW
三(1)班
A1
A2
A3
A4
A5
A6
三(2)班
B1
B2
B3
B4
B5
B6
B7
B8
三(3)班
C1
C2
C3
C4
C5
三(4)班
D1
D2
D3
D4
D5
D6
D7
四(1)班
E1
E2
E3
E4
E5
四(2)班
F1
F2
F3
F4
F5
F6
四(3)班
G1
G2
G3
G4
四(4)班
H1
H2
H3
H4
H5
四(5)班
J1
J2
J3
J4
五(1)班
K1
K2
K3
K4
K5
K6
五(2)班
L1
L2
L3
六(1)班
M1
M2
M3
M4
M5
六(2)班
N1
N2
N3
N4
N5
N6
ENDTEXT
CREATE CURSOR jsmd (三(1)班 C(10), 三(2)班 C(10), 三(3)班 C(10), 三(4)班 C(10), 四(1)班 C(10), 四(2)班 C(10), 四(3)班 C(10), 四(4)班 C(10), 四(5)班 C(10),;
    五(1)班 C(10), 五(2)班 C(10), 六(1)班 C(10), 六(2)班 C(10))
LOCAL laName[10, FCOUNT()]
laName = SPACE(0)
ALINES(laStr, lcStr)
lnCol = 0
FOR ln = 1 TO ALEN(laStr, 1)
    IF ")班" $ laStr[ln]
        lnRow = 1
        lnCol = lnCol + 1
    ELSE
        laName[lnRow, lnCol] = laStr[ln]
        lnRow = lnRow + 1
    ENDIF
ENDFOR
INSERT INTO jsmd FROM ARRAY laName
BROWSE

只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2023-2-11 19:14编辑过]

#3
nbwww2023-02-11 19:11
这不会是学生要交作业吧
#4
王咸美2023-02-11 19:42
@sdta 非常感谢!有没有动态设计表结构的方法?(如果班级很多的话)盼指点。

[此贴子已经被作者于2023-2-11 19:44编辑过]

#5
sdta2023-02-11 20:06
以下是引用王咸美在2023-2-11 19:42:27的发言:

@sdta 非常感谢!有没有动态设计表结构的方法?(如果班级很多的话)盼指点。

班级发来看看
#6
王咸美2023-02-11 20:45
能根据“知识竞赛人员名单.txt”中提及的班级动态生成表文件(无记录的空表)吗?盼指点!谢谢!
#7
sdta2023-02-11 21:04
程序代码:
TEXT TO lcStr NOSHOW
三(1)班
A1
A2
A3
A4
A5
A6
三(2)班
B1
B2
B3
B4
B5
B6
B7
B8
三(3)班
C1
C2
C3
C4
C5
三(4)班
D1
D2
D3
D4
D5
D6
D7
四(1)班
E1
E2
E3
E4
E5
四(2)班
F1
F2
F3
F4
F5
F6
四(3)班
G1
G2
G3
G4
四(4)班
H1
H2
H3
H4
H5
四(5)班
J1
J2
J3
J4
五(1)班
K1
K2
K3
K4
K5
K6
五(2)班
L1
L2
L3
六(1)班
M1
M2
M3
M4
M5
六(2)班
N1
N2
N3
N4
N5
N6
ENDTEXT
lc = SPACE(0)
ALINES(laStr, lcStr)
FOR ln = 1 TO ALEN(laStr, 1)
    IF ")班" $ laStr[ln]
        lc = lc + IIF(EMPTY(lc), SPACE(0), ", ") + laStr[ln] + " C(10)"
    ENDIF
ENDFOR
CREATE CURSOR jsmd (&lc)
BROWSE
#8
王咸美2023-02-11 21:22
@sdta 非常感谢!正是我想要的结果。
#9
sdta2023-02-11 21:23
完整代码
程序代码:
TEXT TO lcStr NOSHOW
三(1)班
A1
A2
A3
A4
A5
A6
三(2)班
B1
B2
B3
B4
B5
B6
B7
B8
三(3)班
C1
C2
C3
C4
C5
三(4)班
D1
D2
D3
D4
D5
D6
D7
四(1)班
E1
E2
E3
E4
E5
四(2)班
F1
F2
F3
F4
F5
F6
四(3)班
G1
G2
G3
G4
四(4)班
H1
H2
H3
H4
H5
四(5)班
J1
J2
J3
J4
五(1)班
K1
K2
K3
K4
K5
K6
五(2)班
L1
L2
L3
六(1)班
M1
M2
M3
M4
M5
六(2)班
N1
N2
N3
N4
N5
N6
ENDTEXT
*
LOCAL laName[10, OCCURS(")班", lcStr)]
laName = SPACE(0)
ALINES(laStr, lcStr)
lnCol = 0
lc = SPACE(0)
FOR ln = 1 TO ALEN(laStr, 1)
    IF ")班" $ laStr[ln]
        lc = lc + IIF(EMPTY(lc), SPACE(0), ", ") + laStr[ln] + " C(10)"
        lnRow = 1
        lnCol = lnCol + 1
    ELSE
        laName[lnRow, lnCol] = laStr[ln]
        lnRow = lnRow + 1
    ENDIF
ENDFOR
*
CREATE CURSOR jsmd (&lc)
INSERT INTO jsmd FROM ARRAY laName
BROWSE
1