Private Sub Command01_Click()
Dim a
Dim b
Dim z()
Dim c, str As String
Dim dd As String
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.Open "select * from FBC", con, adOpenKeyset, adLockOptimistic
dd = Dir("D:\LIS\*.txt")
Do Until dd = "" '开始打开文件夹下第一个文件
Open "D:\LIS\" & dd For Input As #1
ReDim z(6, 4)
Do While Not EOF(1)
Line Input #1, c
List1.AddItem c
str = str & c
Loop
b = Split(str, vbCrLf) '取每一行的数据,共五行,所以一维数组b有五个元素,最大下标为4
For i = 0 To UBound(b)
a = Split(b(i), " ") '对于每一个b的元素,取b中数据到a数组中
For j = 0 To UBound(a)
z(i, j) = a(j)
Debug.Print z(i, j)
Next j
Next i
Close 'z(i,j)就是所得的二维数组
rst.AddNew
rst.Fields("ID") = dd: rst.Fields("A") = z(0, 4): rst.Fields("B") = z(1, 4): rst.Fields("C") = z(2, 4): rst.Fields("D") = z(6, 4)
rst.Update Close #1
dd = Dir '再次调用dir函数,此时可以不带参数
Loop '开始打开文件夹下下一个文件
End Sub
-----------------------------------------
目的:提取多个TXT文件,中有7行5列的内容。
以TXT的名字为ID字段(索引),其余相应字段为数组,存入数据库。1:Debug.Print z(i, j)显示的数组假设打开三个TXT文件的话 显示会出现 TX11,TXT1+TXT2,TXT1+TXT2+TXT3这样的内容。而不是我想要的分别显示TXT1,TXT2,TXT3的内容。
2:可是传输的时候只能传输TXT文件名,数组传不过去 rst.Fields("ID") = dd: rst.Fields("A") = z(0, 4): rst.Fields("B") = z(1, 4): rst.Fields("C") = z(2, 4): rst.Fields("D") = z(6, 4)。可运行无报错。
Dim a
Dim b
Dim z()
Dim c, str As String
Dim dd As String
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.Open "select * from FBC", con, adOpenKeyset, adLockOptimistic
dd = Dir("D:\LIS\*.txt")
Do Until dd = "" '开始打开文件夹下第一个文件
Open "D:\LIS\" & dd For Input As #1
ReDim z(6, 4)
Do While Not EOF(1)
Line Input #1, c
List1.AddItem c
str = str & c
Loop
b = Split(str, vbCrLf) '取每一行的数据,共五行,所以一维数组b有五个元素,最大下标为4
For i = 0 To UBound(b)
a = Split(b(i), " ") '对于每一个b的元素,取b中数据到a数组中
For j = 0 To UBound(a)
z(i, j) = a(j)
Debug.Print z(i, j)
Next j
Next i
Close 'z(i,j)就是所得的二维数组
rst.AddNew
rst.Fields("ID") = dd: rst.Fields("A") = z(0, 4): rst.Fields("B") = z(1, 4): rst.Fields("C") = z(2, 4): rst.Fields("D") = z(6, 4)
rst.Update Close #1
dd = Dir '再次调用dir函数,此时可以不带参数
Loop '开始打开文件夹下下一个文件
End Sub
-----------------------------------------
目的:提取多个TXT文件,中有7行5列的内容。
以TXT的名字为ID字段(索引),其余相应字段为数组,存入数据库。1:Debug.Print z(i, j)显示的数组假设打开三个TXT文件的话 显示会出现 TX11,TXT1+TXT2,TXT1+TXT2+TXT3这样的内容。而不是我想要的分别显示TXT1,TXT2,TXT3的内容。
2:可是传输的时候只能传输TXT文件名,数组传不过去 rst.Fields("ID") = dd: rst.Fields("A") = z(0, 4): rst.Fields("B") = z(1, 4): rst.Fields("C") = z(2, 4): rst.Fields("D") = z(6, 4)。可运行无报错。
里面包括 字符型的 也有数值型的
我只想用每行最后一段数值型的
我先把数据库中定义为single 而z()空缺 -----不行
再把数据库中定义为字符型 而z()空缺 -----不行
再把数据库中定义为single z()single -----不行
Dim a
Dim b
Dim z()
Dim c, str As String
Dim dd As String
' Dim rst As ADODB.Recordset
' Set rst = New ADODB.Recordset
' rst.Open "select * from FBC", con, adOpenKeyset, adLockOptimistic
dd = Dir("E:\收集\循环读入文件\LIS\*.txt")
Do Until dd = "" '开始打开文件夹下第一个文件
Open "E:\收集\循环读入文件\LIS\" & dd For Input As #1
ReDim z(6, 4)
i = 0
str = ""
Do While Not EOF(1)
Line Input #1, c
If Trim(c) <> "" Then
List1.AddItem c
str = str & IIf(i > 0, vbCrLf, "") & c
End If
i = i + 1
Loop
b = Split(str, vbCrLf) '取每一行的数据,共五行,所以一维数组b有五个元素,最大下标为4
For i = 0 To UBound(b)
a = Split(b(i), ",") '对于每一个b的元素,取b中数据到a数组中
For j = 0 To UBound(a)
z(i, j) = a(j)
Debug.Print z(i, j)
Next j
Next i
Close 'z(i,j)就是所得的二维数组
' rst.AddNew
' rst.Fields("ID") = dd: rst.Fields("A") = z(0, 4): rst.Fields("B") = z(1, 4): rst.Fields("C") = z(2, 4): rst.Fields("D") = z(6, 4)
' rst.Update
Close #1
dd = Dir '再次调用dir函数,此时可以不带参数
Loop '开始打开文件夹下下一个文件
End Sub
结果
XE_2100_1
001
A1
20100604074600
4.51
XE_2100_1
001
B1
20100604074600
120
XE_2100_1
001
C1
20100604074600
0.45
XE_2100_1
001
D1
20100604074600
86
XE_2100_1
001
E1
20100604074600
4.51
XE_2100_1
001
F1
20100604074600
4.51
XE_2100_1
001
G1
20100604074600
215
XE_2100_1
001
A1
20100604074600
4.51
XE_2100_1
001
B1
20100604074600
120
XE_2100_1
001
C1
20100604074600
0.45
XE_2100_1
001
D1
20100604074600
86
XE_2100_1
001
E1
20100604074600
4.51
XE_2100_1
001
F1
20100604074600
4.51
XE_2100_1
001
G1
20100604074600
215
————————
str = str & IIf(i > 0, vbCrLf, "") & c
*************************
按你的做法,split时找不到vbcrlf了
————————
a = Split(b(i), ",")
****************
你给的数据是用“,”分割的,我改了