CSV文件,在EXCEL里可以直接生成與讀取。
創(chuàng)新互聯(lián)建站長(zhǎng)期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為華池企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè),華池網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
可以通過(guò)VB.net去操作,打開(kāi)EXCEL文件,去完成上述操作,而更為簡(jiǎn)單的辦法是直接當(dāng)做操作文本文件(TXT文件)就可以,因?yàn)橛糜浭卤拒浖?,打開(kāi)CSV文可以發(fā)現(xiàn),其實(shí)際上是一個(gè)行內(nèi)數(shù)據(jù)之間用逗號(hào)分隔的格式文件。
下面給出例子:
在窗體上添加兩個(gè)多行文本框,兩個(gè)按鈕,兩個(gè)文本框一個(gè)用來(lái)輸入生成CSV文件的數(shù)據(jù),另一個(gè)用來(lái)讀取顯示CSV文件的數(shù)據(jù);兩個(gè)按鈕,一個(gè)完成生成CSV文件的代碼,另一個(gè)完成讀取CSV文件的代碼;具體代碼如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'創(chuàng)建(寫入)一個(gè)文本文件
Dim MyStream As New System.IO.FileStream(Application.StartupPath "\Ssk.CSV", System.IO.FileMode.Create)
Dim MyWriter As New System.IO.StreamWriter(MyStream, System.Text.Encoding.Default)
MyWriter.WriteLine(TextBox1.Text)
MyWriter.Flush()
MyWriter.Close()
MyStream.Close()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'讀取一個(gè)文本文件
Dim MyReader As New System.IO.StreamReader(Application.StartupPath "\Ssk.CSV", System.Text.Encoding.UTF8)
TextBox2.Text = MyReader.ReadToEnd()
MyReader.Close()
End Sub
注意:在輸入文本框里,同一行數(shù)據(jù)的數(shù)據(jù)之間用逗號(hào)(西文逗號(hào))分隔。
沒(méi)什么區(qū)別,只是增加可讀性而已,以下是摘自MSDN的說(shuō)明:
Visual Basic 語(yǔ)言參考
Call 語(yǔ)句 (Visual Basic)
將控制傳送到 Function、Sub 或動(dòng)態(tài)鏈接庫(kù) (DLL) 過(guò)程。
[ Call ] procedureName [ (argumentList) ]
各部分說(shuō)明
procedureName
必選。要調(diào)用的過(guò)程名。
argumentList
可選。變量和表達(dá)式列表,表示當(dāng)調(diào)用過(guò)程時(shí)傳遞給該過(guò)程的參數(shù)。多個(gè)參數(shù)以逗號(hào)分隔。如果包括 argumentList,則必須將它放在括號(hào)內(nèi)。
備注
您通常使用 Call 語(yǔ)句調(diào)用不返回值的過(guò)程。如果該過(guò)程返回值,Call 語(yǔ)句將放棄該值。
在調(diào)用過(guò)程時(shí)不要求您必須使用 Call 語(yǔ)句,但使用該語(yǔ)句可以提高代碼的可讀性。
如果用常規(guī)編程的方法:
直接用split(str1,“,”)的形式把str1字符串分成字符串?dāng)?shù)組,然后用for循環(huán)判斷每個(gè)數(shù)組元素是否是數(shù)字或者是字符串就可以了。
Dim?str?As?String?=?"",?temp,?n?As?Integer
Dim?str1?As?String?=?"12,45,2,9,41,31,66,83,2,1,-9,-91,-21"
Dim?a()?As?String?=?Split(str1,?",")
For?i?=?1?To?UBound(a)?Step?1
a(i)?=?Val(a(i))
Next
temp?=?0
n?=?0
For?i?=?1?To?UBound(a)
If?a(i)??temp?Then
temp?=?a(i)
End?If
If?a(i)??0?Then
n?=?n?+?1
End?If
Next
str?=?str??"正數(shù)的個(gè)數(shù)為?"??n
str?=?str??"最大元素的下標(biāo)為?"
For?i?=?1?To?UBound(a)
If?a(i)?=?temp?Then
str?=?str??i??"?"
End?If
Next
TextBox6.Text?=?str
用數(shù)組唄。我是用VB6的,不過(guò)你會(huì).NET也肯定能看懂。
不是文本文件么?先用Line Input讀每行存入數(shù)組。再把每行數(shù)據(jù)用你的","分割,就可以查詢了。我寫個(gè)簡(jiǎn)單的例子:
'搜索函數(shù),用法Search(標(biāo)頭,序號(hào)),返回?cái)?shù)據(jù).
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 '行數(shù)
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) '因?yàn)閺?開(kāi)始所以-1
Exit Function
End If
Next
End If
End Function
比如你要“gc“開(kāi)頭的第5個(gè)數(shù)據(jù),就用Search("gc",5)即可返回45。