文本格式:
riqi,line,station,sect,class,person,card,per_time,checkman,instr_no,sn
2002-03-09 14:02:25,p08,001,002,b,张三,10052,6,李四,9289343,289434384279734
2002-03-09 14:02:25,p08,001,002,b,张三,10052,6,李四,9289343,287434384279734
我想按第一行的字段为字段名,取下面的数据。如何做好?最好有代码或算法。
另外我还要将存完的数据从文本里删除,如何做好?
Text 转换为 Access MDB
Text 文件类型在很多软件中都为一般应用程序与数据库之间架起一座桥梁。你可以使用 Text ISAM 驱动程序和 SQL 来把 Text 文件转换成 Access MDB 数据库文件,首先,为文本文件创建一个 SCHEMA.INI 文件。然后,你可以使用下面的代码来实现转换:
Dim db As Database, tbl as TableDef
Set db = DBEngine.CreateDatabase(App.Path & "\mymdb.mdb", dbLangGeneral, dbVersion_0)
Set tbl = db.CreateTableDef("Temp")
tbl.Connect = "Text;database=c:\vbpj\data"
tbl.SourceTableName = "Customer#txt"
db.TableDefs.Append tbl
db.Execute "Select Temp.* into NewTable from Temp"
db.TableDefs.Delete tbl.Name
db.Close
Set tbl = Nothing
Set db = Nothing
lihonggen0的方法,直接了当,很好!
下面的代码则是以数组方式读取文件内容,在特定场合也比较有用。
Public data_array
Private Sub splict_line(xxx As String, j As Integer)
Dim k As Integer
Dim bb
bb = Split(xxx, ",")
For k = 0 To UBound(bb)
data_array(j, k) = bb(k)
Next
End Sub
Private Sub read_txtfile(fname As String)
Dim linestr As String
Dim i As Integer
Dim fso, ra, getline
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(fname)) Then
Set ff = fso.OpenTextFile(fname, 1, 0)
ra = ff.ReadAll
getline = ff.Line - 1
ff.Close
sleep 1000
ReDim data_array(getline - 1, 10)
Set ff = fso.OpenTextFile("c:\data.txt", 1, 0)
For i = 0 To getline - 1
linestr = Trim(CStr(ff.ReadLine()))
Call splict_line(linestr, i)
Next i
ff.Close
End If
Set fso = Nothing
End Sub
Private Sub Command1_Click()
Call read_txtfile("c:\data.txt")
End Sub