我在Winform上有以下内容:
现在我想知道如何编写以下代码来执行以下操作:
我会感激任何帮助,因为我没有相应的工作代码。
到目前为止我的代码是:
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);
}
答案 0 :(得分:0)
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