VB.net中任何提取文本文件中的逗号分格数据?

VB.net中任何提取文本文件中的逗号分格数据?
比如下列数据,每个数用逗号分隔的:
qxys,5000,-16.223,150,9420.316,1872.099,
gc,26.996,6100,15000,45,-0.006,
dxd,QC01,5710.382,5264.4313,
我要提取第二行中的45,用代码怎么实现呢?请给出详细代码,我是初学,谢谢各位大师。
用Mid字符提取不能解决问题,可能是我的问题没有表示清楚:有时我要第二行中的第几个数据,有时我又要第三行中的第几个数据。每行的第一个是要用第几行的条件。
比如我要gc开头这一行的第几个数据,如45,但45是动态的,下次有可能是45.1或-45等,所以不能用Mid。谢谢zhouliyi999和 outr12的热心回答。

用数组呗。我是用VB6的,不过你会.NET也肯定能看懂。
不是文本文件么?先用Line Input读每行存入数组。再把每行数据用你的","分割,就可以查询了。我写个简单的例子:

'搜索函数,用法Search(标头,序号),返回数据.
Private Function Search(ByVal Section As String, ByVal Index As Integer) As String
Dim fNum%, Lines%, temp%, Str As String
ReDim Data(0)
fNum = FreeFile()
If Dir("C:\1.txt") = "" Then Exit Function '文件路径和文件名你自己改
Open "C:\1.txt" For Input As #fNum
Do While Not EOF(fNum)
Lines = Lines + 1 '行数
Line Input #fNum, Str
ReDim Preserve Data(Lines)
Data(Lines) = Str
Loop
Close #fNum
If Lines > 0 Then
Dim tmp() As String
For temp = 1 To UBound(Data)
tmp = Split(Data(temp), ",") '分割
If tmp(0) = Section Then
Search = tmp(Index - 1) '因为从0开始所以-1
Exit Function
End If
Next
End If
End Function

比如你要“gc“开头的第5个数据,就用Search("gc",5)即可返回45。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-09-29
mid()函数可以帮你
Mid(string,start,length)

string类型变量str="123456"
mid(str,2,1)的意思是在str字符串中从第2个字符开始取得一个字符,值为2

VB.NET没办法实行动态取值,取一个值必须是静态的,或者静态+公式取值。比如说需要取什么值,或者取哪个字开始的。
动态取值都会有条件的,按照你的条件来定义取哪个值才可以啊。
就好比如说:我要做一样东西,但是我没说清楚,所以你不知道怎么做。其实VB.NET也是一样的。你必须告诉他按照什么规矩去取值,才能得到你想要的值
第2个回答  2010-09-22
给你一个自定义函数,调用很简单。
例:你要gc开头的第4个数据,则
MsgBox GetMsg("gc",4)
返回值是:15000

Function GetMsg(Title As String, Index As Integer) As String
Dim FileName As String, s As String, a() As Byte, b() As String, c() As String
Dim i As Integer, j As Integer, Fn As Integer
Fn = FreeFile
FileName = App.Path & "\1.txt" '请根据实际修改
If Dir(FileName) = "" Then Exit Function
ReDim a(FileLen(FileName))
Open FileName For Binary As #Fn
Get #Fn, , a
Close #Fn
s = StrConv(a, vbUnicode)
b = Split(s, vbNewLine)
Erase a
s = ""
For i = 0 To UBound(b)
c = Split(b(i), ",") '分隔符,这里是大写逗号,请根据实际修改
If c(0) = Title Then
If UBound(c) >= Index Then
GetMsg = c(Index - 1)
Exit Function
End If
End If
DoEvents
Next

End Function
第3个回答  2010-09-20
很简单的

VB.net中任何提取文本文件中的逗号分格数据?
用数组呗。我是用VB6的,不过你会.NET也肯定能看懂。不是文本文件么?先用Line Input读每行存入数组。再把每行数据用你的","分割,就可以查询了。我写个简单的例子:'搜索函数,用法Search(标头,序号),返回数据.Private Function Search(ByVal Section As String, ByVal Index As Integer) As ...

vb.net怎样判断字符串是否为数字+分隔符(如逗号,空格,tab等)+数字的格...
直接用split(str1,“,”)的形式把str1字符串分成字符串数组,然后用for循环判断每个数组元素是否是数字或者是字符串就可以了。

奇怪: 我刚刚对"提取文本文件中逗号分格的数据到datagridview的单元...
百度有时候是挺垃圾的,我经常性的,拿 到最佳答案的问题,查看分数的时候,被告知问题删除了!浪费分就算了,我辛辛苦苦的回答就那样白费了

在vb.net如何获取特位置的字符
If dRow.Length < 4 Then Return '获取第4列 Dim dValue = dRow(3)'dValue就是想要的数据

vb.net怎么生成csv文件啊 求具体代码
CSV只不过是用CRLF分行,逗号分列的一个简单文本 先做好行模板,如 Private RowTemp as string ="{0},{1},{2},...{n}"写入文件时候分行写入 System.IO.StreamWriter.WriteLine(String.format(RowTemp,"数据1”,“数据2"..."数据n"))...

如何将文本数据自动分行并粘贴到表格中?
将文本粘贴到 Excel 中时,可以使用“文本导入向导”功能实现自动分格。这个功能会将文本中的数据按照指定的分隔符(如逗号、制表符等)分割成不同的单元格,并按照原始格式和内容在 Excel 中显示。具体操作步骤如下:1. 复制要粘贴的文本:在原始文件或其他应用程序中选中要复制的文本,然后按下 Ctrl ...

在TextBox.text中输入12,35,98,87要怎么把数字和,分开要代码_百度知 ...
Dim si As String Dim s(5) As Integer si = Text1.Text For i = 0 To 3 s(i) = Val(Split(si, ",")(i))Print s(i);Next End Sub Private Sub Form_Load()Text1 = "12,35,98,87"End Sub 这里s(i) = Val(Split(si, ",")(i))的意思是将Si中的数字和逗号分开,并把...

请教vb.net 读csv 文件,搜索表示指定行
CSV文件特征是每行一条记录,字段用逗号分开。你只需要逐行处理,将每行文本用逗号切分得到数组array,然后判断array[0]是否等于"bbb",如果相等则array[1]就是”4561234567890“;如果不等则继续处理下一行。没怎么用过VB,下面给出C#代码:string FindString(string filename, string title){ FileStre...

vb.net 怎么生成csv文件与怎么读取csv文件
CSV文件,在EXCEL里可以直接生成与读取。可以通过VB.net去操作,打开EXCEL文件,去完成上述操作,而更为简单的办法是直接当做操作文本文件(TXT文件)就可以,因为用记事本软件,打开CSV文可以发现,其实际上是一个行内数据之间用逗号分隔的格式文件。下面给出例子:在窗体上添加两个多行文本框,两个按钮...

.csv是什么文件格式
.CSV是逗号分隔值文件格式(Comma-Separated Values),通常是纯文本文件。 CSV其实就是COMMA SEPARATED VALUE的缩写,出现在档案总管中的档案类型是「逗号分格」,依计算机原来的设定,如果直接点选该档案,计算机将以EXCEL的模式开启该档案。 但建议您千万不要这么做,因为CSV档如果以EXCEL开启,由于计算机档案数据转换的原因...

相似回答