VB.net 读取 TXT 文件出现问题

qiqilearn 2012-08-24 03:13:07
下面是Txt文件的内容:
7.35 7.35 0 3.27 3.27 25.16
-7.35 7.35 0 -3.27 3.27 25.16
-7.35 -7.35 0 -3.27 -3.27 25.16
7.35 -7.35 0 3.27 -3.27 25.16
3.27 3.27 25.16 -3.27 3.27 25.16
-3.27 3.27 25.16 -3.27 -3.27 25.16
-3.27 -3.27 25.16 3.27 -3.27 25.16
3.27 -3.27 25.16 3.27 3.27 25.16
3.27 3.27 25.16 8.82 3.27 39.22
3.27 -3.27 25.16 8.82 -3.27 39.22
-3.27 -3.27 25.16 -8.82 -3.27 39.22
-3.27 3.27 25.16 -8.82 3.27 39.22
3.27 -3.27 25.16 0 -3.27 31.05
-3.27 -3.27 25.16 0 -3.27 31.05
3.27 3.27 25.16 0 3.27 31.05
-3.27 3.27 25.16 0 3.27 31.05
0 3.27 31.05 8.82 3.27 39.22
0 -3.27 31.05 -8.82 -3.27 39.22
0 3.27 31.05 -8.22 3.27 39.22
0 -3.27 31.05 8.82 -3.27 39.22
8.82 3.27 39.22 12.09 3.27 50.33
-8.82 3.27 39.22 -12.09 3.27 50.33
-8.82 -3.27 39.22 -12.09 -3.27 50.33
上面的数据,是我直接从Txt文件中粘贴过来的,Txt文件名叫“File1.txt”

我的代码如下:
Dim r As StreamReader
Dim strTemp As String
Dim a() As String
r = New StreamReader(System.Windows.Forms.Application.StartupPath + "\File1.txt", System.Text.Encoding.GetEncoding("GB2312"))
Do While Not r.EndOfStream
strTemp = r.ReadLine
a = strTemp.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries) '按空格拆分数据
Loop
我的希望是,搞完之后a成为一个多行,6列的数组。
但是发现:
搞完之后a为一个只有一个元素的数组。原因是Split语句中没有发现空格。
但是,我的文件明明有空格啊。
这是咋回事?
请大家多多指教。谢谢。
...全文
216 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
发现是把tab和空格搞混了。
下载我希望读入txt之后,生成一个二维数组,数组里装下txt文件内容。请问代码如何写?
[/Quote]

空格还是tab,不要纠结。人家的split早就可以一起处理它们了。
  • 打赏
  • 举报
回复
哪有这样麻烦?给你写个可执行的完整例子:
Imports System.Linq
Imports System.IO

Module Module1

Sub Main()
Dim filepath As String = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "file1.txt")
Dim a As String() = File.ReadAllText(filepath).Split(New String() {" ", vbTab}, StringSplitOptions.RemoveEmptyEntries)

.....................
End Sub

End Module
zhq_1 2012-08-26
  • 打赏
  • 举报
回复
你确定是空格吗?
大东哥哥的爹 2012-08-26
  • 打赏
  • 举报
回复
System.Text.Encoding.GetEncoding("GB2312") => System.Text.Encoding.GetEncoding.default呢。
iyomumx 2012-08-25
  • 打赏
  • 举报
回复
用vbTab代替你的空格就可以了
qiqilearn 2012-08-25
  • 打赏
  • 举报
回复
发现是把tab和空格搞混了。
下载我希望读入txt之后,生成一个二维数组,数组里装下txt文件内容。请问代码如何写?
qiqilearn 2012-08-25
  • 打赏
  • 举报
回复
发现是把tab和空格搞混了。现在希望读入txt文件之后,能够把文件的数据读入到一个 a()的二维数组中。请问代码如何写呢?
qiqilearn 2012-08-25
  • 打赏
  • 举报
回复
发现是我把制表符和空格搞混了。
如果以制表符来Split,我希望读取txt文件之后,生成一个二维的数组a,这个数组里面存放了txt的内容。请问代码如何写啊?
waynexjw828 2012-08-25
  • 打赏
  • 举报
回复
坐等高手
waynexjw828 2012-08-25
  • 打赏
  • 举报
回复
坐等高手
老龙友 2012-08-24
  • 打赏
  • 举报
回复
strTemp.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)

这里" "为何后面要加ToCharArray()?

我每次都不加。
dzweather 2012-08-24
  • 打赏
  • 举报
回复
告诉你吧,,那个不是空格,而是Tab,ASC码为9

希望采纳。分分我们的命根

hhddzz 2012-08-24
  • 打赏
  • 举报
回复
16进制编辑器打开文件看
数据之间的分隔符是不是“空格”(chr(32))
qiqilearn 2012-08-24
  • 打赏
  • 举报
回复
这个方法不对的。
大家帮忙啊!
lzhcsdn4 2012-08-24
  • 打赏
  • 举报
回复
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim file As New System.IO.StreamReader(System.Windows.Forms.Application.StartupPath + "\ganta1.txt")
Dim words As String = file.ReadToEnd()
Console.WriteLine(words)
file.Close()

End Sub

16,554

社区成员

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

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