日期:2014-05-20  浏览次数:20829 次

100分求大文本文件读取问题,找到一个字符所在的位子,在线等立即给分
100分求大文本文件读取问题,找到一个字符所在的位子

好比Windows下的记事本的搜索功能,Ctrl+F   找出字符的所在位子返回一个值

------解决方案--------------------
StreamReader

ReadLine

一行一行的查吧,这样消耗不大了吧

PS:LZ的什么机器啊,3M都读不出来
------解决方案--------------------
//测试过,1.5M的文件没有什么感觉

private void button1_Click(object sender, EventArgs e)
{
StreamReader vStreamReader = new StreamReader(
@ "D:\Program Files\Borland\BDS\4.0\source\Win32\rtl\win\Windows.pas ");
string vSearch = "finalization ";
int vLine = 0;
string vReadString;
while ((vReadString = vStreamReader.ReadLine()) != null)
{
if (vReadString.IndexOf(vSearch) > = 0)
{
MessageBox.Show(string.Format( "{0}出现在{1}行 ", vSearch, vLine));
break;
}
vLine++;
}
vStreamReader.Close();
}

------解决方案--------------------
//精确到字符这样做:
int i = vReadString.IndexOf(vSearch);
if (i > = 0)
{
vIndex += i;
MessageBox.Show(string.Format( "{0}出现在{1}行,第{2}个字符 ",
vSearch, vLine, vIndex));
break;
}
vLine++;
vIndex += vReadString.Length + 2; // 回车换行两个字符