private void button6_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.Filter = "NFA files (.txt)|.txt"; openFileDialog1.Title = "Select an NFA File"; if (openFileDialog1.ShowDialog() == DialogResult.OK) { string fileName = openFileDialog1.FileName; string[] lines = System.IO.File.ReadAllLines(fileName); string startSymbol = lines[0].Split(':')[1].Trim(); string[] terminalSymbols = lines[1].Split(':')[1].Trim().Split(';'); int maxStateNum = int.Parse(lines[2].Split(':')[1].Trim()); string[] alphabet = lines[3].Split(':')[1].Trim().Split(';');

    // Display the result in the listView2 control
    listView2.Clear();
    listView2.Columns.Add("起始状态", 100);
    listView2.Columns.Add("接受符号", 100);
    listView2.Columns.Add("到达状态", 100);

    for (int i = 4; i < lines.Length; i++)
    {
        string[] items = lines[i].Split('\t');
        string startState = items[0];
        string symbol = items[1];
        string endState = items[2];

        ListViewItem listViewItem = new ListViewItem(startState);
        listViewItem.SubItems.Add(symbol);
        listViewItem.SubItems.Add(endState);

        listView2.Items.Add(listViewItem);
    }
}

}

private void button5_Click(object sender, EventArgs e) { SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "NFA files (.txt)|.txt"; saveFileDialog1.Title = "Save NFA File"; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { string fileName = saveFileDialog1.FileName;

    // Get data from the listView1 control
    List<string> data = new List<string>();
    data.Add("开始符:" + listView1.Items[0].SubItems[0].Text + ";");
    data.Add("终结符:" + string.Join(";", listView1.Items[1].SubItems[0].Text.Split(',')) + ";");
    data.Add("最大状态数:" + listView1.Items[2].SubItems[0].Text + ";");
    data.Add("符号集:" + string.Join(";", listView1.Items[3].SubItems[0].Text.Split(',')) + ";");

    for (int i = 0; i < listView1.Items.Count; i++)
    {
        string startState = listView1.Items[i].SubItems[0].Text;
        string symbol = listView1.Items[i].SubItems[1].Text;
        string endState = listView1.Items[i].SubItems[2].Text;

        data.Add(startState + "\t" + symbol + "\t" + endState);
    }

    // Write data to the file
    System.IO.File.WriteAllLines(fileName, data);
}
private void button5_Clickobject sender EventArgs e函数在private void button6_Clickobject sender EventArgs e函数基础上实现NFA文件保存功能文件名称为NFAtxt其中第一行是开始符第二行是终结符后者函数功能为用VS软件C#语言实现读入NFA文件的功能且该NFA文件的前四行中的数据第一行是开始符第二

原文地址: https://www.cveoy.top/t/topic/cg1v 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录