找出规律,然后逐行写入。给你一段代码供参考。
说明:我这段代码处理的是以"00:”开头,并以"99:”结尾。其它没一行都是两位数字加冒号开头,每行由多个冒号把多个字段分隔开,所以我是判断冒号的位置,然后读入冒号之间的内容。你可以考虑顿号,或者其它规律。
Dim edict
Close #1
Open Me.文本0 For Input As #1 ' 打开文件。
Do While Not EOF(1) ' 循环至文件尾。
Line Input #1, edict ' 读入一行数据并将其赋予某变量。
If Mid(edict, 1, 3) = "99:" Then
MsgBox "处理完毕"
Close #1
Exit Do
End If
'50记录
If Mid(edict, 1, 2) = "50" Then
len50 = Len(edict)
wz50_1 = InStr(1, edict, ":", 1)
wz50_2 = InStr(wz50_1 + 1, edict, ":", 1)
wz50_3 = InStr(wz50_2 + 1, edict, ":", 1)
wz50_4 = InStr(wz50_3 + 1, edict, ":", 1)
wz50_5 = InStr(wz50_4 + 1, edict, ":", 1)
wz50_6 = InStr(wz50_5 + 1, edict, ":", 1)
wz50_7 = InStr(wz50_6 + 1, edict, ":", 1)
wz50_8 = InStr(wz50_7 + 1, edict, ":", 1)
wz50_9 = InStr(wz50_8 + 1, edict, ":", 1)
wz50_10 = InStr(wz50_9 + 1, edict, ":", 1)
wz50_11 = InStr(wz50_10 + 1, edict, ":", 1)
wz50_12 = InStr(wz50_11 + 1, edict, ":", 1)
wz50_13 = InStr(wz50_12 + 1, edict, ":", 1)
wz50_14 = InStr(wz50_13 + 1, edict, ":", 1)
wz50_15 = InStr(wz50_14 + 1, edict, ":", 1)
wz50_16 = InStr(wz50_15 + 1, edict, ":", 1)
xh = Mid(edict, wz50_1 + 1, wz50_2 - wz50_1 - 1)
xx = Mid(edict, wz50_2 + 1, wz50_3 - wz50_2 - 1)
fel = Mid(edict, wz50_3 + 1, wz50_4 - wz50_3 - 1)
op = Mid(edict, wz50_16 + 1, len50 - wz50_16 - 1)
'51记录
Line Input #1, edict ' 读入一行数据并将其赋予某变量。
If Mid(edict, 1, 2) <> "51" Then
MsgBox "51格式错误" & edict
Exit Sub
End If
len51 = Len(edict)
wz51_1 = InStr(1, edict, ":", 1)
wz51_2 = InStr(wz51_1 + 1, edict, ":", 1)
If wz51_2 = 0 Then
tdh = Mid(edict, wz51_1 + 1, len51 - wz51_1 - 1)
End If
If wz51_2 <> 0 Then
tdh = Mid(edict, wz51_1 + 1, wz51_2 - wz51_1 - 1)
End If
'52记录
Line Input #1, edict ' 读入一行数据并将其赋予某变量。
If Mid(edict, 1, 2) <> "52" Then
MsgBox "52格式错误" & edict
Exit Sub
End If
len52 = Len(edict)
wz52_1 = InStr(1, edict, ":", 1)
wz52_2 = InStr(wz52_1 + 1, edict, ":", 1)
wz52_3 = InStr(wz52_2 + 1, edict, ":", 1)
wz52_4 = InStr(wz52_3 + 1, edict, ":", 1)
wz52_5 = InStr(wz52_4 + 1, edict, ":", 1)
'zhgdm = Mid(edict, wz52_1 + 1, wz52_2 - wz52_1 - 1)
If len52 = wz52_3 + 6 Then
xhgdm = Mid(edict, wz52_3 + 1, 5)
End If
If len52 <> wz52_3 + 6 Then
xhgdm = Mid(edict, wz52_3 + 1, wz52_4 - wz52_3 - 1)
End If
'jhddm = Mid(edict, wz52_5 + 1, len52 - wz52_5 - 1)
zhgdm = "XXXXX"
'xhgdm = "XXXXX"
jhddm = "XXXXX"
DoCmd.RunSQL "INSERT INTO 船图 ( 提单号,箱号,箱型,FEL,箱主,装货港代码,卸货港代码,交货地代码 ) values(" & Chr(34) & tdh & Chr(34) & "," & Chr(34) & xh & Chr(34) & "," & Chr(34) & xx & Chr(34) & "," & Chr(34) & fel & Chr(34) & "," & Chr(34) & op & Chr(34) & "," & Chr(34) & zhgdm & Chr(34) & "," & Chr(34) & xhgdm & Chr(34) & "," & Chr(34) & jhddm & Chr(34) & ")"
End If
Loop