private void button1_Click(object sender, EventArgs e) { string str = textBox1.Text.Trim(); string[] arr = str.Split('\n'); #region 检查输入 for (int i = 0; i < arr.Length; i++) { SortedDictionary <string, string> hosts = new SortedDictionary <string, string>(); string[] quickLines = arr[i].Split(';'); foreach (string line in quickLines) { Match match = HostsDal.RegItem.Match(line); if (!match.Success) { MessageBox.Show(string.Format("第{1}行的配置 {0} 不符合要求(注释不能有分号哦)", line, i + 1)); return; } string ip = match.Result("$1"); string name = match.Result("$2"); if (hosts.ContainsKey(name.ToLower())) { MessageBox.Show(string.Format("第{1}行的域名 {0} 重复定义", name, i + 1)); return; } hosts.Add(name.ToLower(), ip); } } #endregion HostsDal.SaveQuickLines(str); btnCanel_Click(null, null); }
private void btnSave_Click(object sender, EventArgs e) { int messageShowSecond; if (!int.TryParse(txtSecond.Text, out messageShowSecond)) { MessageBox.Show("你输入的整数是错误的"); return; } Regex reg = new Regex(@"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$", RegexOptions.Compiled); if (!reg.IsMatch(txtTelecomDns.Text)) { MessageBox.Show("你输入的电信DNS IP格式不对"); return; } if (!reg.IsMatch(txtUnicomDns.Text)) { MessageBox.Show("你输入的网通DNS IP格式不对"); return; } string encode = radUTF8.Checked ? "UTF-8" : "GB2312"; string linkQuickUse = radNoQuick.Checked ? "0" : "1"; string addMicroComment = radNoComment.Checked ? "0" : "1"; string saveComment = radDelComment.Checked ? "0" : "1"; string saveToSysDir = radSysDir.Checked ? "1" : "0"; string isFront = radFront.Checked ? "1" : "0"; HostsDal.SaveConfig(encode, linkQuickUse, addMicroComment, saveComment, saveToSysDir, messageShowSecond, isFront, txtTelecomDns.Text, txtUnicomDns.Text); this.Close(); }
public QuickLineForm() { InitializeComponent(); ShowInTaskbar = false;// 不能放到OnLoad里,会导致窗体消失 label1.Text += @" 每行记录可以包含多个配置,以;分隔(注意注释不能有分号),例如: 192.168.1.123 beinet.cn;192.168.2.234 www.beinet.cn 多行之间以物理换行分隔,自然换行不算新行 快速切换与快捷行的区别: 快速切换类似于备份,是清除当前hosts的全部内容,用快速切换文件里的内容替换 快捷行则只是把行里的内容追加到当前hosts的内容最后,并不修改当前hosts的旧内容"; textBox1.Text = HostsDal.GetQuickLines(); }