Я работаю над приложением C # winForm.В моем проекте мне нужно прочитать текстовый файл.и получить данные в списке.
Для теста: используется список "listTest"
Для команды cmd: используется список "listCmd"
Мое требование: мне нужны Test1 и Test2в mainList i, e "listTest".В Test1 -> cmd1, cmd2, cmd3 (который находится в listCmd).И в cmd1 -> TX, RX.То же самое для Test2.
данные текстового файла
Test:Test1
cmd-1:5A 02 11 00 02 3A 05 ||5A 02 01 02 3A 3F
cmd-2:5A 02 31 00 02 3E 00 80||5A 02 01 02 3E 43
cmd-3:5A 02 21 00 02 00||5A 02 01 02 0B 10
Test:Test2
cmd-1:5A 02 11 00 02 3A 05 00 14 00 42||5A 02 01 02 3A 3F
cmd-2:5A 02 31 00 02 3E 00 00 02 00 80||5A 02 01 02 3E 43
Моя проблема: я попробовал следующий код, в котором я получаю все значения 5 cmd для Test1.И то же самое для Test2.Я хочу только 3 cmd в Test1 и 2 cmd в Test2..
В классе 1:
private void readCmd()
{
string cmdfile = System.IO.Directory.GetCurrentDirectory() + "\\Cmd.txt";
try
{
string[] lines = File.ReadAllLines(cmdfile);
string[] splitLine;
string[] txRx;
cls_test testnum = new cls_test();
str_listcmd listcmd = new str_listcmd();
foreach (string line in lines)
{
if (line.Contains("Test"))
{
splitLine = line.Split(':');
txRx = splitLine.Skip(1).ToArray();
uc.listTest.Add(testnum);
}
if (line.Contains("cmd"))
{
string[] delimiter = { ":", "||" };
txRx = line.Split(delimiter, StringSplitOptions.None);
listcmd.cmdNo = txRx[0];
listcmd.txCmd = txRx[1];
listcmd.rxCmd = txRx[2];
testnum.listCmd.Add(listcmd);
}
}
for (int j = 0; j < uc.listTest.Count; j++)
{
for (int i = 0; i < uc.listTest[j].listCmd.Count; i++)
{
string tx = uc.listTest[j].listCmd[i].txCmd;
string rx = uc.listTest[j].listCmd[i].rxCmd;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
В классе 2 объявлен основной список
public List<cls_test> listTest = new List<cls_test>(); //main list
struct str_listcmd
{
public string cmdNo { get; set; }
public string txCmd { get; set; }
public string rxCmd { get; set; }
}
class cls_test
{
public List<str_listcmd> listCmd = new List<str_listcmd>();
}
private void button1_Click(object sender, EventArgs e)
{
var a = listTest;
}
Я не могу найти то, что мне не хватает.Пожалуйста, помогите мне решить эту проблему.Заранее спасибо.