我想把这个txt文件读出来,该怎么写呀..2431F11A10T01 2 2 -- 0.08 M-CNC-CMM
2431F11A10T022 1 -- 0.05 M-CNC-CMM 中间的空格也不一定..该怎么解决呀,请大侠给个思路,或来个例子.谢谢...
2431F11A10T022 1 -- 0.05 M-CNC-CMM 中间的空格也不一定..该怎么解决呀,请大侠给个思路,或来个例子.谢谢...
解决方案 »
- DataEnvironment动态改变SQL命令的问题。
- 在vb6里用Printer.ScaleLeft = Text23在我的电脑上运行通过,但成生EXE文件到其它的电脑上就出现“run-time 13 类型不匹配"请高手解答
- 【★】《计算机等级考试四级(1996-2003) 【★】
- Wise Install打包文件安装在98下IE就被破坏
- 各位大侠,虚心请教关于水晶报表,有高分送.
- 一个关于抓屏的疑惑!!?!(用BitBlt)
- excel中的VB程序代码怎么编译和打包
- *********alsen 在这吗?你发给我的只是题目 : (,没有正文呀!!!
- 我真喜欢这里,解决了那么多问题!真高兴,等我有成绩了一定请大家吃饭!有没有苏州人?
- 网格控件为什么不显示新数据?
- PropertyBag无法使用
- 问一个VB2005的问题
Dim outStrings As String
Open App.Path & "\a.txt" For Input Access Read As #1
outStrings = Input(LOF(1), #1)
Close #1
MsgBox "文件中的文字为:" & vbCrLf & outStrings, vbInformation, App.Title
End Sub
各字段空格的多少也不一定 我该怎么做呀...求高手支招....谢谢...
字符串处理肯定是要用到left、right、mid、trim这些函数的
Option Explicit
Private Sub Command1_Click()
Dim a()
Dim b
Dim i As Long, j As Long
Dim s As String
Open "C:\123.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, s
b = Split(s, " ")
For i = 0 To UBound(b)
If b(i) <> "" Then
ReDim Preserve a(j)
a(j) = b(i)
Debug.Print a(j)
j = j + 1
End If
Next
Loop
Close #1
End Sub
Dim strData$
Dim reg As Object
Dim matchs As Object, match As Object
strData = "2431F11A10T01 2 0.08 怴惂 M-CNC-CMM" & vbCrLf & _
"2431F11A10T022 1 0.05 怴惂 M-CNC-CMM"
Set reg = CreateObject("vbscript.regexp")
reg.Global = True
reg.IgnoreCase = True
reg.Pattern = "(.+?)\s+(\d+)\s+(.+?)\s+(.+?)\s+(.+?)(?:\s+?|$)"'每个数据之间的空格或者制表符个数不限
Set matchs = reg.Execute(strData)
For Each match In matchs
Debug.Print match.SubMatches(0) & "," & match.SubMatches(1) & "," & match.SubMatches(2) & "," & match.SubMatches(3) & "," & match.SubMatches(4)'这里可以修改成写入数据库的代码
Next
End Sub
For i = 0 To UBound(b)
If b(i) <> "" Then
debug.print b(i)
End If
Next
谢谢.....
建立楼主试试我上面正则的方法,简洁而不乏效率
如果你的间隔是固定的还好办,比如一个制表符,那么直接用split(xx,vbtab)分割处理;
如果既有空格又有制表符而且个数不定,那么就比较麻烦了。
你用的是不是 fso文件系统呀
reg.Pattern = "(.+?)\s+(\d+)\s+(.+?)\s+(.+?)\s+(.+?)(?:\s+?|$)"'