2009110901 54425 4042 11748 0003 0008=
2009110901 54429 4020 11795 0000 0005=
2009110901 54430 4077 11815 0001 0000=
2009110901 54432 4060 11848 0000 0000=
2009110901 54434 4017 11830 0000 0000=
2009110901 54436 4040 11895 0002 0001=
2009110901 54522 3988 11773 0000 0000=
NNNN
我想读取把第二列里为54429和54432的这两行读出来,其它的不要,应该怎么处理啊?
还有,碰到最后NNNN,我想结束程序,应该怎么办?
2009110901 54429 4020 11795 0000 0005=
2009110901 54430 4077 11815 0001 0000=
2009110901 54432 4060 11848 0000 0000=
2009110901 54434 4017 11830 0000 0000=
2009110901 54436 4040 11895 0002 0001=
2009110901 54522 3988 11773 0000 0000=
NNNN
我想读取把第二列里为54429和54432的这两行读出来,其它的不要,应该怎么处理啊?
还有,碰到最后NNNN,我想结束程序,应该怎么办?
解决方案 »
- 请问怎么使用DDE进行2个VB程序之间的数据交互?
- ★★бя⊙⊙怎样用VBA循环一个目录下的所有工作簿并且操作这些工作簿的指定工作表呢?
- 需要哪几个DLL或其它文件才可以不需安装直接运行VB+ACCESS的程序?
- vsFlexGrid 控件是否能象DataGrid一样在控件里直接添加记录?请给代码
- 江湖救急啊!!!!!!!!!!1!!!!!!!!!!!!!!!!!1
- 送分来了(分数不多,不要见怪哦)
- 如何用VB代码实现对ACCESS数据库的压缩与修复
- 本人刚写了一个有关表操作的类!希望大家提出修改意见!谢谢
- vb打抱的问题,请帮忙
- 有关用键盘控制操作进入datagrid控件与离开datagrid控件而使另一控件得到焦点的问题?
- vb怎在原有图标上加下快捷方式图标(即左下角的小箭头)?
- 我想用SetupFactory7.0做一个界面,它可以选择服务器、输入用户名、输入密码和选择数据库,下一步就可以自动执行脚本。这个可以实现吗?怎样实现?谢谢~
ss(1)和ss(2)就是你要的,
用if判断标志"NNNN",是就退出循环
代码很简单,自己搜吧
估计楼主的 NNNN是表示底下还有很多条数据~
Option Explicit
Private Sub Command1_Click() Const LINEWIDTH& = 40 '如果是 vbLF 定界的,改成 39
Const DATAWIDDH& = 5 '数据是5个字符
Const OFFSET& = 12 '数据从第12个字符开始
Dim iFN&, strTemp$
Dim lVarA&, lVarB&
strTemp = Space(DATAWIDDH)
iFN = FreeFile()
Open "X:\Temp\Test.txt" For Binary As iFN '打开文件
Get iFN, LINEWIDTH * (2 - 1) + OFFSET, strTemp '读第2行
lVarA = CLng(strTemp)
Get iFN, LINEWIDTH * (3 - 1) + OFFSET, strTemp '读第3行
lVarB = CLng(strTemp)
Close iFN
MsgBox lVarA & vbLf & lVarB, 64End Sub
^[^\s]*?\s(?:54429|54432)\s.*?$
读取文本文件中数据需要一行一行读取,读取的数据出错可能性大.
Dim strData$
Dim reg As Object
Dim matchs As Object, match As Object
strData = "2009110901 54425 4042 11748 0003 0008= " & vbCrLf & _
"2009110901 54429 4020 11795 0000 0005= " & vbCrLf & _
"2009110901 54430 4077 11815 0001 0000= " & vbCrLf & _
"2009110901 54432 4060 11848 0000 0000= " & vbCrLf & _
"2009110901 54434 4017 11830 0000 0000= " & vbCrLf & _
"2009110901 54436 4040 11895 0002 0001= " & vbCrLf & _
"2009110901 54522 3988 11773 0000 0000= "
Set reg = CreateObject("vbscript.regexp")
reg.Global = True
reg.IgnoreCase = True
reg.MultiLine = True
reg.Pattern = "^\d+?\s(?:54429|54432)\s.*?$"
Set matchs = reg.Execute(strData)
For Each match In matchs
Debug.Print match.Value
Next
End Sub
Line Input #1, strLine
If Left(strLine, 4) = "NNNN" Then Exit Do strItem = Split(strLine, " ")
if Ubound(strItem) Then
If (strItem(1) = 54429) Or (strItem(1) = 54432) Then
Debug.Print strLine
End If
End If
LoopClose #1
Private Sub Command1_Click()
Open "c:\temp\111.txt" For Input As #1
Dim istr As String
Do
Line Input #1, istr
If Split(istr)(1) = 54429 Or Split(istr)(1) = 54432 Then
Debug.Print istr
End If
Loop While Trim(istr) <> "NNNN" Or Not EOF(1)
MsgBox "OK"
End Sub