private void button5_Clickobject sender EventArgs e函数在private void button6_Clickobject sender EventArgs e函数基础上实现NFA文件保存功能文件名称为NFAtxt其中第一行是开始符第二行是终结符后者函数功能为用VS软件C#语言实现读入NFA文件的功能且该NFA文件的前四行中的数据第一行是开始符第二
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);
}
原文地址: https://www.cveoy.top/t/topic/cg1v 著作权归作者所有。请勿转载和采集!