vb.net读取文本文件

sunrisehy2003 2010-07-12 02:02:12

我在网上看到很多关于vb.net读取文本文件的文章,但都是全部读取或只读取一行,不太适合我。
我需要的是有一个循环,能将文本内容一行一行地读取,然后将每一行的内容根据某个分隔符进行拆分。
简单地说就是将文本内容转化为EXCEL,或者读入到数据库表中。
...全文
470 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunrisehy2003 2010-07-12
  • 打赏
  • 举报
回复

我在二楼的基础上改了一下,如果下述代码中的TXTBOX是数据库表的字段,再对数据表进行循环就可以实现我的要求了。


代码如下:
Try
currentRow = MyReader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
TextBox1.Text = currentRow(0)
TextBox2.Text = currentRow(1)
TextBox3.Text = currentRow(2)
Next
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("Line " & ex.Message & "is not valid and will be skipped.")
End Try
鸭梨山大帝 2010-07-12
  • 打赏
  • 举报
回复
Using(托管对象:IDisposable)
{
//
}

==>

try
{
//
}
catch(Excepition ex)
{
//
}finnally{
托管对象.Dispose();
}

[Quote=引用 5 楼 sunrisehy2003 的回复:]
请问一下,代码中的,USING,TRY,CATCH分别起什么作用。
[/Quote]
hztltgg 2010-07-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sunrisehy2003 的回复:]
请问一下,代码中的,USING,TRY,CATCH分别起什么作用。
[/Quote]
你也可以全部去掉这些东西

Dim MyReader As New Microsoft.VisualBasic.
FileIO.TextFieldParser(
"C:\TestFolder\test.txt")
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(",")
Dim currentRow As String()
While Not MyReader.EndOfData
currentRow = MyReader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
MsgBox(currentField)
Next
End While
MyReader.Close

但是这样的话,如果你的代码执行的时候出现异常,文件这种资源将不能释放,using是try的一种特殊用法,Catch也是try子句的一部分,你可以先去稍微学习一下异常的概念
wph1234 2010-07-12
  • 打赏
  • 举报
回复
fnum1 = FreeFile() '开始读取采样控制文件
FileOpen(fnum1, " D:\text1.dat", OpenMode.Input)
Do While Not EOF(fnum1)

bb = LineInput(fnum1)
bb = Replace(bb, " ", vbNullString)
bfrm = Split(bb, ",")
Loop
TextBox4.Text = bfrm(0)
CheckBox1.Checked = Val(bfrm(1))
CheckBox2.Checked = Val(bfrm(2))
CheckBox3.Checked = Val(bfrm(3))
RadioButton1.Checked = Val(bfrm(4))
RadioButton2.Checked = Val(bfrm(5))
RadioButton3.Checked = Val(bfrm(6))

TextBox8.Text = bfrm(7)
TextBox5.Text = bfrm(8)
TextBox6.Text = bfrm(9)
TextBox7.Text = bfrm(10)
FileClose() '读取采样控制文件后关闭文件
这是我程序中用到的,你可以看看,可以实现你的功能,至于分隔符,我是在存入数据时自己添加的分隔符“,”,主要看上半部分就可以了,下面是赋值
sunrisehy2003 2010-07-12
  • 打赏
  • 举报
回复
请问一下,代码中的,USING,TRY,CATCH分别起什么作用。
sunrisehy2003 2010-07-12
  • 打赏
  • 举报
回复
上面的代杩看来不错,我试下。
myhope88 2010-07-12
  • 打赏
  • 举报
回复
用流啊,里面也有些方法是一行行读取的吧
hztltgg 2010-07-12
  • 打赏
  • 举报
回复
如何:在 Visual Basic 中读取逗号分隔的文本文件


Using MyReader As New Microsoft.VisualBasic.
FileIO.TextFieldParser(
"C:\TestFolder\test.txt")
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(",")
Dim currentRow As String()
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
MsgBox(currentField)
Next
Catch ex As Microsoft.VisualBasic.
FileIO.MalformedLineException
MsgBox("Line " & ex.Message &
"is not valid and will be skipped.")
End Try
End While
End Using

hztltgg 2010-07-12
  • 打赏
  • 举报
回复
其实.net类库里已经提供TextFieldParser类的,提供分析结构化文本文件的方法和属性。不需要你做将每一行的内容根据某个分隔符进行拆分这种工作了

16,552

社区成员

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

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