求助大神!如何读出txt文件,分割里面数据,并加载到datagridview中

stronger_泡 2015-07-16 01:38:01
我先把文件一行一行读出来,但只是READline,怎么能把这个文档中的数据分割,筛选出来?

Public Class Form1
Public objReader As System.IO.StreamReader
Public LineNum As Integer
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim s_FileName As String '存储文件名
OpenFileDialog1.Filter = "纬地交点数据文件(*.jdw)|*.jdw" '使用openfiledialog更灵活
OpenFileDialog1.ShowDialog()
s_FileName = OpenFileDialog1.FileName
Dim TextLine As String = ""
If System.IO.File.Exists(s_FileName) = True Then
objReader = New System.IO.StreamReader(s_FileName)
'Do While objReader.Peek() <> -1
'TextLine = TextLine & objReader.ReadLine() & vbNewLine
'Loop
TextLine = objReader.ReadLine()
RichTextBox1.Text = TextLine
LineNum = 1
Button2.Enabled = True
Else
MsgBox("File Does Not Exist")
End If
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
LineNum = LineNum + 1
If objReader.Peek() <> -1 Then
RichTextBox1.Text = objReader.ReadLine & vbNewLine & "这是第" & LineNum.ToString + "行数据"
Else
RichTextBox1.Text = "已经到了文件末尾!"
Button2.Enabled = False
End If
End Sub

这个是我读文件的代码


我怎么能用split 把数据分隔开,我的数据文件是这样

里面分别是XY坐标,半径 LS1 LS2
我做了一个datagridview,里面数据是我添加固定的值,我怎么能把我的这个文件里的数据显示到这个控件中。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
For i = 0 To 6
m_JdData.JDX = 80000
m_JdData.JDY = 90000
m_JdData.Ls1 = 200
m_JdData.Ls2 = 200
m_JdData.R = 300
m_JdDatas.Add(m_JdData)
Next
DataGridView1.Columns.Add("JDNO", "序号")
DataGridView1.Columns.Add("JDX", "交点X坐标")
DataGridView1.Columns.Add("JDY", "交点Y坐标")
DataGridView1.Columns.Add("LS1", "前缓和曲线长度")
DataGridView1.Columns.Add("R", "曲线半径")
DataGridView1.Columns.Add("LS2", "后缓和曲线长度")
' 注意DataGridView的索引是先列后行
For i = 0 To m_JdDatas.Count - 1
DataGridView1.Rows.Add()
DataGridView1.Item(0, i).Value = (i + 1).ToString
DataGridView1.Item(1, i).Value = m_JdDatas(i).JDX.ToString
DataGridView1.Item(2, i).Value = m_JdDatas(i).JDY.ToString
DataGridView1.Item(3, i).Value = m_JdDatas(i).Ls1.ToString
DataGridView1.Item(4, i).Value = m_JdDatas(i).R.ToString
DataGridView1.Item(5, i).Value = m_JdDatas(i).Ls2.ToString
Next
End Sub




我怎么才能把我的文件里面数据分别分割或者存成数组,并且显示到这个控件中。求各位大神帮忙,本人是小菜鸟一只
...全文
403 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
轻鸿万里 2015-07-26
  • 打赏
  • 举报
回复
先读取所有行 再每行按tab符分割 datagridview.rows.add()添加一行 然后每个单元格赋值。
stronger_泡 2015-07-17
  • 打赏
  • 举报
回复
引用 8 楼 Z65443344 的回复:
string[] = string.Split('分隔符'); split的用法如果不知道,查msdn啊,不要瞎用 你首先要告诉它,到底把什么字符串进行分割,然后再传入一个参数,按什么字符进行分割 最后返回的是个string[]数组
我现在分割好到数组,想加到datagridvoew,怎么选择数据呀? 每一行分割好,怎么写选择第二个数据之类的
於黾 2015-07-16
  • 打赏
  • 举报
回复
string[] = string.Split('分隔符'); split的用法如果不知道,查msdn啊,不要瞎用 你首先要告诉它,到底把什么字符串进行分割,然后再传入一个参数,按什么字符进行分割 最后返回的是个string[]数组
stronger_泡 2015-07-16
  • 打赏
  • 举报
回复
引用 4 楼 Z65443344 的回复:
如果这个文件本来就是你自己录入的数据 那么最好换种格式,便于你的程序读取 比如最开始不要胡乱加tab和空格 数据与数据之间使用;或,分割,而不是tab或多个空格来分割
不是我自己录入的数据,是给出的文件就是这种格式。。
stronger_泡 2015-07-16
  • 打赏
  • 举报
回复
引用 2 楼 bdmh 的回复:
用streamreader,每次readline,然后按空格分割成数组,填充到数据集,然后继续下一行
不太会编出来这个语句 我太菜了
於黾 2015-07-16
  • 打赏
  • 举报
回复
如果这个文件本来就是你自己录入的数据 那么最好换种格式,便于你的程序读取 比如最开始不要胡乱加tab和空格 数据与数据之间使用;或,分割,而不是tab或多个空格来分割
stronger_泡 2015-07-16
  • 打赏
  • 举报
回复
引用 1 楼 Z65443344 的回复:
既然你本来就是循环一行一行读的,读出来split一下呗 既然你都知道要用split,还有什么问题?
我就不知道怎么split,我加了一句SplitLine = Split(TextLine, ",") 但是好像没什么反应。 或者后面我加到datagridview中,m-JDX= 可以选择我文件中第几行第几个数字么?
於黾 2015-07-16
  • 打赏
  • 举报
回复
目测你的word文件里是用\t来进行分割的 还有,你确定这是txt?为啥你要用word打开??
bdmh 2015-07-16
  • 打赏
  • 举报
回复
用streamreader,每次readline,然后按空格分割成数组,填充到数据集,然后继续下一行
於黾 2015-07-16
  • 打赏
  • 举报
回复
既然你本来就是循环一行一行读的,读出来split一下呗 既然你都知道要用split,还有什么问题?

16,554

社区成员

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

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