private void button5_Click(object sender, EventArgs e) { // 获取开始符和终结符 string startSymbol = "开始符:" + textBox1.Text + ";"; string endSymbols = "终结符:" + textBox2.Text + ";";

// 获取最大状态数和符号集
int maxState = Convert.ToInt32(textBox3.Text);
string symbols = "符号集:" + textBox4.Text + ";";

// 初始化NFA文件内容
string nfaContent = startSymbol + "\n" + endSymbols + "\n" + "最大状态数:" + maxState + "\n" + symbols + "\n";

// 遍历listView1中的数据,生成NFA文件内容
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;

    // 判断是否为ε转移
    if (symbol == "#")
    {
        symbol = "ε";
    }

    // 拼接NFA文件内容
    nfaContent += startState + "\t" + symbol + "\t" + endState + "\n";
}

// 保存NFA文件
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "NFA文件(*.nfa)|*.nfa";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
    string fileName = saveFileDialog.FileName;
    File.WriteAllText(fileName, nfaContent, Encoding.UTF8);
}
private void button5_Clickobject sender EventArgs e函数在private void button6_Clickobject sender EventArgs e函数基础上实现NFA文件保存功能其中第一行是开始符第二行是终结符后者函数功能为用VS软件C#语言实现读入DFA文件的功能且该DFA文件的前四行中的数据第一行是开始符第二行是终结符第三行是最大

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

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