请问VB.net中如何处理文本文件?

gozn 2003-12-28 03:18:08
我用file.opentext("aa.txt")获得了一个streamReader对象,用它的readLine方法得到一行字符串,但是该文本行是以tab分隔的多个数据项,如何一一取得这些项目并中间允许空白的项目,也要能够读取出来。请指教!
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
SammyXu 2003-12-29
  • 打赏
  • 举报
回复
供参考:
Dim NameList(300, 1) As String
Dim listCounts As Int16

Private Sub ReadNameFromText()
Dim fs As StreamReader
Dim oneLine As String
Try
fs = New StreamReader("namelist.txt") '在文件中存了员工号和姓名
oneLine = fs.ReadLine()
While (oneLine <> "")
SeparateName(oneLine)
oneLine = fs.ReadLine()
End While
fs.Close()

Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub

Private Sub SeparateName(ByVal value As String)
Dim strValue As String
Dim strArray(1) As String

strValue = value
strArray = strValue.Split(vbTab) '将Tab分开的一行数据赋予一个数组

NameList(listCounts, 0) = strArray(0) ’将取出的数赋予一个全局数组
NameList(listCounts, 1) = strArray(1)

listCounts += 1
End Sub
delf 2003-12-29
  • 打赏
  • 举报
回复
Private Sub ShowInfo(ByVal InfoFile As String, ByVal InfoCount As Integer, ByVal MidStr As String, ByVal TargetView As ListView)
Dim strInfo(InfoCount - 1) As String
Dim objReader As New StreamReader(InfoFile)
Dim sLine As String = ""
Dim i As Integer
Dim lviInfo As ListViewItem
Dim c As Integer
Dim t As Integer

Do
sLine = objReader.ReadLine()
c = 0
t = 1
If Not sLine Is Nothing Then
For i = 1 To Len(sLine+MidStr)
If Mid(sLine+MidStr, i, 1) = MidStr Then
strInfo(c) = Mid(sLine+MidStr, t, i - t)
t = i + 1
c = c + 1
End If
Next i
lviInfo = New ListViewItem(strInfo)
TargetView.Items.Add(lviInfo)
End If
Loop Until sLine Is Nothing

objReader.Close()
End Sub

刚写的一个函数,在listview里面显示条目,给你参考一下
gozn 2003-12-29
  • 打赏
  • 举报
回复
谢谢,己解决!
zihu928 2003-12-28
  • 打赏
  • 举报
回复
循环分析每个字符,发现TAB就截断
gozn 2003-12-28
  • 打赏
  • 举报
回复
如果仅以字符串的方式来处理的话,也就是将读出来的每一行根据TAB分隔符取出一个个的子串来怎么实现???(按顺序号--即该子串位置,取出一个子串)

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧