由于最近推廣網(wǎng)站的需要,筆者自己想制作一款軟件來(lái)實(shí)現(xiàn)網(wǎng)站增流的目的,開發(fā)環(huán)境為win7 + visual studio 2012 C#.net,其中有有一項(xiàng)功能需要從txt文本文檔中隨機(jī)讀取一行,偏偏這個(gè)功能在使用的時(shí)候怎么都出現(xiàn)錯(cuò)誤,沒(méi)辦法到網(wǎng)上求助,經(jīng)過(guò)多方參考借鑒,亦是美網(wǎng)絡(luò)找到了一種適合自己開發(fā)需要的方法,如果你也正在查詢這個(gè)功能,那就趕快往下看吧。
先給大家說(shuō)下我的思路,要從文本文檔中隨機(jī)讀取一行,那么我就需要將整個(gè)文本逐行讀取下來(lái),然后將其寫入到一個(gè)動(dòng)態(tài)數(shù)組里,然后我們?cè)俳⒁粋(gè)隨機(jī)數(shù),這個(gè)隨機(jī)數(shù)用于動(dòng)態(tài)數(shù)組的下標(biāo),只要這個(gè)數(shù)是隨機(jī)的,那么數(shù)組里取值就是隨機(jī)的,這樣我們就實(shí)現(xiàn)了整個(gè)文本文檔逐行的隨機(jī),下面附上代碼:
相關(guān)閱讀:
C#不足位數(shù)補(bǔ)零String.PadLeft Method (Int32, Char)方法詳解
C#控件ComboBox沒(méi)有只讀屬性怎么辦?如何讓ComboBox顯示初始默認(rèn)值?
StreamReader sr = new StreamReader(@".\test.txt",System.Text.Encoding.GetEncoding("gb2312")); //讀取指定文本文檔
ArrayList al = new ArrayList();//建立動(dòng)態(tài)數(shù)組
Random r = new Random();//隨機(jī)數(shù)
while(sr.Peek()>=0) //逐行讀取文本文檔
{
al.Add(sr.ReadLine());//將讀取到的行寫到數(shù)組中
}
int i = r.Next(0, 6); 定義隨機(jī)數(shù)的范圍
string str = al[i].ToString(); //將讀取到的隨機(jī)數(shù)組值賦給str
Console.WriteLine(str); //打印出str
Console.ReadKey();
C#小幫助:StreamReader的Peek 方法的使用,表示要讀取的下一個(gè)字元(本文為下一行),該方法傳回整數(shù)值,如果讀取完畢,則返回整數(shù)值-1。
|