type student
strname as string *6
number as strint *7
end type我建立了一个随机文件,并且输入了如上自定义类型的数据10条。后来我想通过程序实现查找的功能,可是当我在文本框中输入“张科”然后进行查找时却无论如何也找不到。我在程序中设置了一些断点后发现,从文件中读出的数据后面带有一些空格,而且这些空格用trim()函数也无法删掉。希望高手能帮助解决,真的非常感谢。
strname as string *6
number as strint *7
end type我建立了一个随机文件,并且输入了如上自定义类型的数据10条。后来我想通过程序实现查找的功能,可是当我在文本框中输入“张科”然后进行查找时却无论如何也找不到。我在程序中设置了一些断点后发现,从文件中读出的数据后面带有一些空格,而且这些空格用trim()函数也无法删掉。希望高手能帮助解决,真的非常感谢。
解决方案 »
- 请问在VB中不用ADO控件.用代码如何链接ACCESS数据库?
- 我在关vb的时候总提示有错误,重安了好几遍都没用,
- 弹出式菜单的一个难题
- 请教:关于connection.execute()
- treeview与datagrid连接问题?
- 高手们进来看看吧,在线等待,100分!!!!!!
- 有一个中文的网站是专门讲解API的,网址忘记了,谁知道?
- 大家好,高分求教文件操作源码
- 新出炉的VB网站,海量内容!!http://vbsite.my5599.com
- 小弟我有几个办公自动化系统的源代码,哪位有兴趣一起合作开发或购买的?
- [求助]有关远程数据库访问的问题
- WinXP中ActiveX控件的.ocx文件应放在哪个文件夹??
Option Explicit'文件_顺序文件_函数用法
Private Sub Form_Click()
Dim intI As Integer
Dim lngFileLen As Long, lngLOF As Long
Dim strA(20) As String
Open "A:顺序文件" For Input As #1
'用Input读文件
Debug.Print "用Input读文件:"
Do While Not EOF(1)
intI = intI + 1
Input #1, strA(intI)
Debug.Print strA(intI)
Loop
Close #1
Open "A:顺序文件" For Input As #1
'用Line Input读文件
Debug.Print "用Line Input读文件:"
Do While Not EOF(1)
intI = intI + 1
Line Input #1, strA(intI)
Debug.Print strA(intI)
Loop
Close #1
'求打开文件前的字节数
lngFileLen = FileLen("A:顺序文件")
Debug.Print "打开文件前的字节数为:"; lngFileLen
Open "A:顺序文件" For Input As #1
'求打开文件后的字节数
lngLOF = LOF(1)
Debug.Print "打开文件后的字节数为:"; lngLOF
'用Input函数读文件
strA(1) = Input(lngLOF, #1)
Debug.Print "用Input函数读文件:"
Debug.Print strA(1)
Close #1
CurrentX = 1000
CurrentY = 1000
FontSize = 20
Print "程序已运行完毕"
End Sub
在Project-Reference中添加引用Microsoft Scripting Runtime'文件系统对象_文本流搜索
Option Explicit
Public vntResult() As VariantFunction STFiles(strPath As String, strSearch As String) As Variant()
Dim objFSO As New FileSystemObject
Dim objFil As File
Dim objTS As TextStream
Dim lngPos As Long, lngCount As Long
ReDim vntResult(50)
'在路径strPath所有文件中查找扩展名为TXT的每一个文件
For Each objFil In objFSO.GetFolder(strPath).Files
If UCase(objFSO.GetExtensionName(objFil.Path)) = "TXT" Then
'如果扩展名为TXT则打开该文件
Set objTS = objFil.OpenAsTextStream(ForReading)
'在objTS.ReadAll中从第1个字符起查找字符strSearch最先出现的位置
lngPos = InStr(1, objTS.ReadAll, strSearch, vbTextCompare)
'关闭此文件
objTS.Close
'如果找到所要搜索的字符串
If lngPos > 0 Then
'重新打开该文件
Set objTS = objFil.OpenAsTextStream(ForReading)
'将指针移到所要搜索的字符最先出现的位置
objTS.Skip lngPos - 1
'文件计数器加1
lngCount = lngCount + 1
'如果文件计数器超过vntResult的上界
If lngCount > UBound(vntResult) Then
ReDim Preserve vntResult(UBound(vntResult) + 50)
End If
'利用Array函数为vntResult变体数组赋值
vntResult(lngCount) = Array(objFil.Path, objTS.Line, objTS.Column)
'关闭该文件
objTS.Close
End If
End If
Next
ReDim Preserve vntResult(lngCount)
STFiles = vntResult
End Function'文件系统对象_文本流搜索
'Option ExplicitPrivate Sub Form_Click()
Dim vntP() As Variant
Dim intI As Integer
'在F盘的所有TXT文件中搜索第一个“星期”所出现的位置
vntP() = STFiles("F:", "星期")
'将出现位置放入列表框
For intI = 1 To UBound(vntP)
List1.AddItem "路径为" & vntP(intI)(0) & _
" 在第" & vntP(intI)(1) & "行和第" & _
vntP(intI)(2) & "列"
Next
End Sub