请教如何实现:C#对文本文件内容进行读取的操作(根据给定字符串,用折半查找进行)!!!! 你是说一个txt里有很多个字符串,用要折半法找某个特定的字符串?那把所有的字符串读到一个数组,再用折半法找就ok了,折半法随便找本数据结构或算法书应该都有 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 读取文件,然后执行查找,要是我就全部读到一个STRING ,然后查找,折半不会用 将源代码帖下来,虽然不是最佳,但也算是方法之一吧!呵呵!希望对别的新手有所帮助!!!private void button1_Click(object sender, EventArgs e){ string temp; string bar; string name; ArrayList al = new ArrayList(); StreamReader sr = new treamReader("d:\\in.txt",Encoding.GetEncoding("gb2312")); byte[] bwrite; while (sr.Peek() != -1) { temp = sr.ReadLine(); al.Add(temp); } sr.Close(); string t = half_search(al, textBox1.Text); label1.Text = textBox1.Text; label2.Text = t;}public string search(ArrayList al,string str) { int low = 0,high, mid,m; byte[] b; high = al.Count; while (low <= high) { mid = (low + high) / 2; m = string.Compare(str,al[mid].ToString().Substring(0,20).Trim()); if (m == 0) { b = Encoding.GetEncoding("gb2312").GetBytes(al[mid].ToString().ToCharArray()); string name = Encoding.Default.GetString(b, 20, 30); return name.Trim(); } else { if (m < 0) { high = mid - 1; } else { low = mid + 1; } } } return "没有找到数据";} 串口通信编码转换问题,急 》》》关于base关键字的问题 打印问题 如何在另一个窗体中创建一个控件? HttpWebRequest获取到一个html文本怎样获取其中的值 100分求解 --未将对象引用设置到对象的实例 关于简单的手机接口调用的问题(常规问题)?? web自定义控件,属性支持文件浏览 WPF窗口程序DataGrid控件自定义ComboBox列不显示数据 制作.net安装程序,请高手指点小女子! 高手求救 C#如可链接MYSQL c#中如何对hashtable取值
希望对别的新手有所帮助!!!
private void button1_Click(object sender, EventArgs e)
{
string temp;
string bar;
string name;
ArrayList al = new ArrayList(); StreamReader sr = new treamReader("d:\\in.txt",Encoding.GetEncoding("gb2312"));
byte[] bwrite;
while (sr.Peek() != -1)
{
temp = sr.ReadLine();
al.Add(temp);
}
sr.Close();
string t = half_search(al, textBox1.Text);
label1.Text = textBox1.Text;
label2.Text = t;
}
public string search(ArrayList al,string str)
{
int low = 0,high, mid,m;
byte[] b; high = al.Count;
while (low <= high)
{
mid = (low + high) / 2;
m = string.Compare(str,al[mid].ToString().Substring(0,20).Trim());
if (m == 0)
{
b = Encoding.GetEncoding("gb2312").GetBytes(al[mid].ToString().ToCharArray());
string name = Encoding.Default.GetString(b, 20, 30);
return name.Trim();
}
else
{
if (m < 0)
{
high = mid - 1;
}
else
{
low = mid + 1;
}
}
}
return "没有找到数据";
}