我在winform上有以下内容:
- 按钮 - 打开 *.txt文件,代码已经完成并且有效
- 组合框 - 显示找到的日期
- DataGridView-显示所选日期的信息
现在我想知道如何编写以下代码来执行以下操作:
- 搜索TXT文件以查看日期(无重复(
- 在组合盒中显示发现的日期。
- 一旦该人从组合框中选择了所需的日期,该日期的信息将在DataGridView中显示。
我很感谢任何帮助,因为我没有工作代码。
到目前为止我拥有什么代码:
private void Historybutton_Click(object sender, EventArgs e)
{
SSBPgroupBox.Enabled = false;
DataTable HFdt = new DataTable();
DialogResult result1 = openFileDialog2.ShowDialog();
if (result1 == DialogResult.OK) // Test result.
{
String Fname = openFileDialog2.FileName;
string raw_text = System.IO.File.ReadAllText(Fname);
//add headers to datagrid view
HFdt.Columns.Add("Sequence");
HFdt.Columns["Sequence"].DataType = Type.GetType("System.Int32");
HFdt.Columns.Add("Timing");
HFdt.Columns["Timing"].DataType = Type.GetType("System.Int32");
}
HistorydataGridView.DataSource = HFdt;
}
文本文件的示例:
17/05/15-16:40:13:BLAST DRIVER ON
BLASTING PLAN
PU1053 (0005 DETS):
1/7B7C35;11/7B70B2;21/7B7058;31/7B83A1;41/7B70D1;
BLAST SUMMARY
1 PU, 00005 DETS
DELAYS MIN/MAX IN MS : 00001 / 00041
GAP MIN/MAX IN MS : 00010 / 00010
16:40:32:LINE TEST
CALIBRATION
EXTRA DETS :None
INTERMITTENT CONNECTION DETS :None
TEST DETS
MISSING DETS :None
OUT OF ORDER DETS :None
INCOHERENT DETS :None
DELAY ERRORS DETS :None
16:41:52:TEST END
16:44:02:CHARGE
CHECK ENERGIE
ADDITIONAL MISSING DETS :None
LOW ENERGY DETS :None
ADDITIONAL INCOHERENT DETS :None
16:44:29:FIRE
我想要的是显示日期,如下所示:
:17/05/15 - 0005 Dets
当用户选择此日期时,dataGridView将显示:
Sequence Timing
1 1
2 11
3 21
4 31
5 41
我添加了以下代码以获取列表框中的文本文件。我仍在尝试显示日期:
String Fname = openFileDialog2.FileName;
string[] raw_text = System.IO.File.ReadAllLines(Fname);
var lines = new List<string>();
foreach (var line in File.ReadLines(Fname))
{
listBox1.Items.Add(line);
}
public class Info
{
public string _Info { get; set; }
public DateTime _Date { get; set; }
}
List<Info> infos = new List<Info>();
//Onload - insert infos from *txt file
List<DateTime> dates = infos.GroupBy(x => x._Date).Select(y => y.First()).Select(z=>z._Date).ToList();
//no duplicates dates
List<string> dateInfos = infos.Where(x => x._Date == selectedDate).Select(z=>z._Info).ToList();
//show infos for selected date