你是怎么讀寫的呢?下面是簡單的讀寫
在青山等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),成都營銷網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,青山網(wǎng)站建設(shè)費(fèi)用合理。
Dim str As String = (My.Computer.FileSystem.ReadAllText("C:\QD51-R24_A.csv")) '讀
My.Computer.FileSystem.WriteAllText("C:\1.csv", str, True) '寫
你csv文件是用什么分割符的?
把csv文件當(dāng)做文本文件處理
File.ReadAllLines 讀取所有行,
然后循環(huán)每行,按照分隔符split后就是每一列
csv文件可以當(dāng)做文本文件來處理!
主要處理代碼如下:
Dim t As String, b() As stirng, s(10) As String, cj(10) As Single
t = "" '這里是你讀取的CSV文件內(nèi)容
b() = Split(t, vbCrLf)
For j = 0 To 9
s(j) = b(j) '這個就是每一行的數(shù)據(jù)了
c() = Split(s(j), ",")
cj(j) = Val(c(1)) '這個就是每一行的成績數(shù)據(jù)了
Next
'然后進(jìn)行排序和顯示處理
CSV文件特征是每行一條記錄,字段用逗號分開。你只需要逐行處理,將每行文本用逗號切分得到數(shù)組array,然后判斷array[0]是否等于"bbb",如果相等則array[1]就是”4561234567890“;如果不等則繼續(xù)處理下一行。
沒怎么用過VB,下面給出C#代碼:
string FindString(string filename, string title){ FileStream stream = null; try { stream = File.OpenRead(filename); StreamReader reader = new StreamReader(stream, Encoding.Default);
string result = null;//存儲查找的結(jié)果 while (!reader.EndOfStream) { //讀取一行 string strLine = reader.ReadLine(); string[] array = strLine.Split(','); if (array == null || array.Length 1)//該行無效 continue; if (string.Compare(array[0], title, false) == 0) {//找到了 return array[1]; } } } catch (Exception ex) { //出錯了 return null; } finally { if (stream != null) stream.Close(); }
//到這里說明沒找到 return null;}void Test(){ string result = FindString(@"C:\demo.csv", "bbb");}
用一個streamreader和streamwriter即可
Using?sr2?As?New?StreamWriter("2.csv",?False,?Text.Encoding.Default)?'要寫入的文件
Using?sr1?As?New?StreamReader("1.csv",?Text.Encoding.Default)?'要讀取的文件
While?Not?sr1.EndOfStream?'EndOfStream=True表示讀取結(jié)束了
'讀取
Dim?lineread?As?String?=?""?'等下要讀的行
Dim?linewrite?As?String?=?""?'等下要寫入的行
Dim?data?As?String()?'每個數(shù)據(jù)的數(shù)組
lineread?=?sr1.ReadLine?'讀一行并把流的位置往后調(diào)一行
'你現(xiàn)在可以用If判斷這一行要不要刪除。如果要的話,用Else直接跳過下面的語句即可。
data?=?lineread.Split(",".ToCharArray,?StringSplitOptions.RemoveEmptyEntries)?'讀取一行,用逗號分隔后存在數(shù)組里
'下面對讀取到的數(shù)據(jù)進(jìn)行處理,你可以自己處理它
For?Each?item?As?String?In?data
linewrite?=?item??","?'csv是以逗號分隔的,我們寫進(jìn)去時也要記得加逗號
Next
'寫入
If?linewrite.EndsWith(",")?Then?'去掉行最后一個逗號。
'如果之前讀到一個空行,這里就不會執(zhí)行。你想想為什么
sr2.WriteLine(linewrite.Remove(linewrite.Length?-?1,?1))
End?If
'如果你之前用If判斷了行要不要刪除,那么End?If就應(yīng)該加在這里。
End?While
sr1.Close()
End?Using
sr2.Flush()
sr2.Close()
End?Using
給你一段VB.net讀取csv文件的代碼把。
Imports?System.IO
Imports?System.Collections.Generic
Module?Module1
Public?CSV數(shù)據(jù)?As?List(Of?List(Of?String))
'''?summary
'''?從指定路徑的文件讀取內(nèi)容,并分析出其中每行含有分隔符的數(shù)據(jù),存到CSV數(shù)據(jù)中。
'''?para調(diào)用的時候使用CSV數(shù)據(jù)(5)(0)表示第6條記錄的第1個數(shù)據(jù)/para
'''?/summary
'''?param?name="文件路徑"必需。一個[String]表達(dá)式。要讀取的文件路徑。/param
'''?returns返回是否讀取成功/returns
'''?remarks/remarks
Public?Function?讀取(ByVal?文件路徑?As?String)?As?Boolean
Dim?文件讀取器?As?StreamReader?=?New?StreamReader(文件路徑)
Dim?語句?As?String
Dim?t成功?As?Boolean?=?True
Dim?分隔符?As?Char?=?";"
CSV數(shù)據(jù)?=?New?List(Of?List(Of?String))
While?Not?文件讀取器.EndOfStream
Try
語句?=?文件讀取器.ReadLine
'分析語句后判斷類型
If?語句.Contains(分隔符)?Then
Dim?array?=?語句.Split(分隔符)
If?array?IsNot?Nothing?Then
CSV數(shù)據(jù).Add(array.ToList())
End?If
End?If
Catch?ex?As?Exception
t成功?=?False
End?Try
End?While
Return?t成功
End?Function
End?Module
你上面的數(shù)據(jù)執(zhí)行后,將會保存到一個List嵌套List的String組中。
自己轉(zhuǎn)化為數(shù)字再進(jìn)行操作把。
Dim?數(shù)字?=?Convert.ToDecimal(CSV數(shù)據(jù)(5)(0))