⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmgeneralscreenedit.cs

📁 三国群英传7场景修改器 源代码
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace San7GeneralScreen
{
    public partial class FrmGeneralScreenEdit : FrmINIBase
    {
        public FrmGeneralScreenEdit()
        {
            InitializeComponent();
        }

        public override void OpenFile()
        {            
            //base.OpenFile();
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Filter = "*.ini|*.ini";
            dlg.Title = "打开General02.ini文件";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                dgvGeneralInformation.Rows.Clear();
                string targetFile = dlg.FileName;
                FileStream fs = new FileStream(targetFile, FileMode.Open);
                StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("big5"));
                string line = "";
                List<General> gens = new List<General>();
                General curGen = new General();

                while ((line = sr.ReadLine()) != null)
                {
                    if (line.StartsWith("[GENERAL]"))
                    {
                        gens.Add(curGen);
                        if (curGen.City != null)
                        {
                            DataGridViewRow dgvr = new DataGridViewRow();
                            dgvr.CreateCells(dgvGeneralInformation);
                            dgvr.Cells[0].Value = curGen.No;
                            dgvr.Cells[1].Value = curGen.Name;
                            for (int i = 0; i < 10; i++)
                            {
                                dgvr.Cells[i + 2].Value = curGen.City[i].Display;
                            }
                            dgvr.Tag = curGen;
                            dgvGeneralInformation.Rows.Add(dgvr);
                        }
                        curGen = new General();
                        curGen.City = new List<City>();
                    }
                    if (line.StartsWith("No"))
                    {
                        curGen.No = GetCommonValue(line);
                    }
                    if (line.StartsWith("Name"))
                    {
                        curGen.Name = GetCommonValue(line);
                    }
                    if (line.StartsWith("City"))
                    {
                        curGen.City.Add(new City(line));
                    }
                    //Console.WriteLine(line);
                }
                sr.Close();
                fs.Close();
            }
        }

        public override void SaveFile()
        {
            //base.SaveFile();
            SaveFileDialog dlg = new SaveFileDialog();
            dlg.Filter = "*.ini|*.ini";
            dlg.Title = "保存General02.ini文件";
            dlg.FileName = "General02.ini";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                FileStream fs = new FileStream(dlg.FileName, FileMode.OpenOrCreate);
                StreamWriter sw = new StreamWriter(fs, Encoding.GetEncoding("big5"));
                foreach (DataGridViewRow dgvr in dgvGeneralInformation.Rows)
                {
                    if (dgvr.Tag != null)
                    {
                        General gen = (General)dgvr.Tag;
                        sw.WriteLine("[GENERAL]");
                        sw.WriteLine("No = " + gen.No);
                        sw.WriteLine("Name = " + gen.Name);
                        for (int i = 1; i <= 10; i++)
                        {
                            sw.WriteLine("City" + i.ToString() + " = " + gen.City[i - 1].Display);
                        }
                        sw.WriteLine("");
                    }
                }
                sw.Close();
                fs.Close();
                MessageBox.Show("保存成功!");
            }
        }

        public override void ExecAction()
        {
            //base.ExecAction();
            Random rand = new Random();
            foreach (DataGridViewRow dgvr in dgvGeneralInformation.Rows)
            {
                if (dgvr.Tag != null)
                {
                    bool bNeedRand = false;
                    General gen = (General)dgvr.Tag;
                    foreach (City c in gen.City)
                    {
                        if (c.CityID != "" && Microsoft.VisualBasic.Conversion.Val(c.CityID) <= 103)
                        {
                            bNeedRand = true;
                            break;
                        }
                    }

                    if (bNeedRand)
                    {

                        int curIndex = 2;
                        foreach (City c in gen.City)
                        {
                            if (c.CityID == "")
                            {
                                c.CityID = rand.Next(104).ToString();
                                c.Status = "0";
                                c.Display = c.CityID + "," + c.Status + " ";
                                dgvr.Cells[curIndex].Value = c.Display;
                            }
                            curIndex++;
                        }
                    }

                }
            }
        }


        private string GetCommonValue(string strLine)
        {
            string[] strArr = strLine.Split(new string[] { "=" }, StringSplitOptions.RemoveEmptyEntries);
            if (strArr.Length > 1)
            {
                return strArr[1];
            }
            return "";
        }

      
                         
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -