按日期和名称搜索文本文件中的句子
本文关键字:文件 句子 文本 搜索 日期 | 更新日期: 2023-09-27 18:06:11
我正在尝试按日期和名称搜索我的文本文件中的句子。然后我想把这个句子加载到我表单中的一些文本框中。我是VS的新手,但我知道一些关于C的事情。我已经想出了这个代码:
string pattern = dateTimePicker1Is.Text;
string pattern1 = _txtNameIs.Text;
IList<string> result = new List<string>();
using (var reader = new StreamReader(@"C:'Users'user'Desktop'Testet System'isto.txt"))
{
string currentLine;
while ((currentLine = reader.ReadLine()) != null)
{
if (currentLine.Contains(pattern))
{
if (currentLine.Contains(pattern1))
{
result.Add(currentLine);
string[] tempArray = currentLine.Split(',');
_txtNameIs.Text = tempArray[0];
_txtSurnameIs.Text = tempArray[1];
_txtApokxT.Text = tempArray[2];
_txtApoktT.Text = tempArray[3];
_txtEpanxT.Text = tempArray[4];
_txtEpandT.Text = tempArray[5];
_txtApokkT.Text = tempArray[6];
_txtEpankT.Text = tempArray[7];
_txtApoksT.Text = tempArray[8];
_txtEpansT.Text = tempArray[9];
_txtGenSun.Text = tempArray[10];
break;
}
else
{
MessageBox.Show("There are no records!");
}
}
}
}
当我按下搜索按钮时,它加载了我需要的所有数据,但如果我有相同的名字和不同的日期,一个消息框弹出并告诉'没有记录'。
我相信有更好的方法:
string pattern = dateTimePicker1Is.Text;
string pattern1 = _txtNameIs.Text;
string pathToFile = @"C:'Users'user'Desktop'Testet System'isto.txt";
List<string> result = new List<string>();
foreach (var line in File.ReadAllLines(pathToFile))
{
if (line.Contains(pattern) && line.Contains(pattern1))
{
result.Add(line);
string[] tempArray = line.Split(',');
if(tempArray.Length >= 11)
{
_txtNameIs.Text = tempArray[0];
_txtSurnameIs.Text = tempArray[1];
_txtApokxT.Text = tempArray[2];
_txtApoktT.Text = tempArray[3];
_txtEpanxT.Text = tempArray[4];
_txtEpandT.Text = tempArray[5];
_txtApokkT.Text = tempArray[6];
_txtEpankT.Text = tempArray[7];
_txtApoksT.Text = tempArray[8];
_txtEpansT.Text = tempArray[9];
_txtGenSun.Text = tempArray[10];
break;
}
}
}
如果列表计数为0
,则最好显示消息
我认为你的There are no records
错误应该发生
- while语句后
- 如果没有找到匹配
对吧?
因此,如果在bool中找到匹配,然后在while if !IsMatchFound之后抛出错误。