C#,怎样利用filestream流查询文件中的某几个字
怎样通过filestream或者stream流查询文件中的数据呢?比如某个txt文件中存放的数据位“2014中国”怎么通过传入“中国”查询者两个字是否在文件中呢?还有就是...
怎样通过filestream或者stream流查询文件中的数据呢?比如某个txt文件中存放的数据位“2014 中国”怎么通过传入“中国”查询者两个字是否在文件中呢?还有就是能不能通过“中国”二字查询与它同一行的前四个字呢,也就是这里的2014,比如这个txt文件中存了多行数据第一行是“2014 中国”,第二行是“2008 北京”,能否通过在流中传递参数“北京”查询出2008返回,或者通过“中国”返回2014呢?我想做一个公交查询软件,打算把公交数据存放在tx文件中,然后通过filestream流读取文件,所以想实现上面的查询操作,望大神指点迷津。。献上所有财富了,之后追加
展开
1个回答
展开全部
private string SelectStr(string str)
{
FileStream fs = new FileStream("d:\\a.txt", FileMode.Open);
StreamReader m_streamReader = new StreamReader(fs, System.Text.Encoding.GetEncoding("GB2312"));
m_streamReader.BaseStream.Seek(0, SeekOrigin.Begin);
string strLine = m_streamReader.ReadLine();
do
{
if (strLine.Contains(str))
{
return strLine.Substring(strLine.IndexOf(str) - 4, 4);
}
strLine = m_streamReader.ReadLine();
} while (strLine != null && strLine != "");
m_streamReader.Close();
m_streamReader.Dispose();
fs.Close();
fs.Dispose();
return "";
}
}
{
FileStream fs = new FileStream("d:\\a.txt", FileMode.Open);
StreamReader m_streamReader = new StreamReader(fs, System.Text.Encoding.GetEncoding("GB2312"));
m_streamReader.BaseStream.Seek(0, SeekOrigin.Begin);
string strLine = m_streamReader.ReadLine();
do
{
if (strLine.Contains(str))
{
return strLine.Substring(strLine.IndexOf(str) - 4, 4);
}
strLine = m_streamReader.ReadLine();
} while (strLine != null && strLine != "");
m_streamReader.Close();
m_streamReader.Dispose();
fs.Close();
fs.Dispose();
return "";
}
}
更多追问追答
追问
谢谢,不过你这样的话是在知道“中国”是第五个字所以把流的位置往前移四位,但是要是不知道“中国”这两个字在哪里呢?有没有以行为单位的方式查询啊,通过传入的参数查询该参数所在行的前几个字。
追答
返回的是“中国”的前四个字符,中国可以在行的任意位置
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询