Beispiel #1
0
 public InsertCodeForm(BinFile existing, Disassembler disassembler, Assembler asnew, int offset = 0)
 {
     InitializeComponent();
     mainTextBox = ((TextBoxHost)elementHost1.Child).mainTextBox;
     mainTextBox.ShowLineNumbers = true;
     refFile        = disassembler;
     baseFile       = existing;
     gcheckSuccess  = false;
     offsetBox.Text = offset.ToString("X");
     asm            = asnew;
     insertOffset   = -1;
 }
Beispiel #2
0
 public MainForm(BinFile cs, Disassembler ds, Assembler ac, LabelContainer lcnew)
 {
     InitializeComponent();
     mainTextBox             = ((TextBoxHost)elementHost2.Child).mainTextBox;
     disassembler            = ds;
     assembler               = ac;
     labelContainer          = lcnew;
     romFile                 = cs;
     funcLabelBox.DataSource = labelContainer.FuncList;
     dataLabelBox.DataSource = labelContainer.DataList;
     varLabelBox.DataSource  = labelContainer.VarList;
 }
Beispiel #3
0
        /// <summary>
        /// Выводит таблицу, внутри которой считывает данные о домах
        /// </summary>
        public void ReadHouse()
        {
            BinFile file = new BinFile();

            file.Load_DataBase();
            Input        inp         = new Input();
            Frames       frame       = new Frames();
            List <House> _houses     = new List <House>();
            bool         canСontinue = true;

            Console.Clear();
            Console.WriteLine("╔════════════════════════╤════════════╤═══════════════╤═══════════════╤══════════════════════╗");
            Console.WriteLine("║    Назвение посёлка    │ Номер дома │ Площадь в м^2 │ Кол-во этажей │       Тип дома       ║");
            Console.WriteLine("╠════════════════════════╪════════════╪═══════════════╪═══════════════╪══════════════════════╣");
            Console.WriteLine("║                        │            │               │               │                      ║");
            Console.Write("╚════════════════════════╧════════════╧═══════════════╧═══════════════╧══════════════════════╝");

            while (canСontinue)
            {
                House house = new House("", 0, 0, 0, "");
                Console.SetCursorPosition(2, Console.CursorTop - 1);
                Console.CursorVisible = true;
                if (inp.ReadValid(ref house.name, 22))
                {
                    Console.SetCursorPosition(27, Console.CursorTop);
                    inp.ReadValid(ref house.num, 10);
                    Console.SetCursorPosition(40, Console.CursorTop);
                    inp.ReadValid(ref house.area, 13);
                    Console.SetCursorPosition(56, Console.CursorTop);
                    inp.ReadValid(ref house.floor, 13);
                    Console.SetCursorPosition(72, Console.CursorTop);
                    inp.ReadValid(ref house.type, 20);
                    Console.CursorVisible = false;
                    Console.SetCursorPosition(0, Console.CursorTop + 1);
                    Console.WriteLine("╟────────────────────────┼────────────┼───────────────┼───────────────┼──────────────────────╢");
                    Console.WriteLine("║                        │            │               │               │                      ║");
                    Console.Write("╚════════════════════════╧════════════╧═══════════════╧═══════════════╧══════════════════════╝");
                    _houses.Add(house);
                }
                else
                {
                    canСontinue = false;

                    if (frame.Call_MassageBox(30, 10, "Cозранить изменения?"))
                    {
                        file.SaveInFile(_houses, FileMode.Append);
                    }
                }
            }
            Console.Clear();
            frame.Menu(30, 3, 18, "Таблица посёлков", "Таблица домов", "Таблица девелоперов");
        }
Beispiel #4
0
        private static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                return;
            }

            var vm = new VirtualMachine();

            var bin = new BinFile(File.ReadAllBytes(args[0]));

            vm.Run(bin);
        }
 private void SaveFile(string fileName)
 {
     try
     {
         BinFile.Save(fileName);
         OpenFile(fileName);
     }
     catch (Exception ex)
     {
         MessageBox.Show($"Could not save \"{fileName}\":{Environment.NewLine}{ex.Message}", Title,
                         MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
     }
 }
Beispiel #6
0
        /// <summary>
        /// Выводит таблицу с данными о домах
        /// </summary>
        public void WriteHouse()
        {
            BinFile file = new BinFile();

            //List<House> houses = new List<House>();
            file.Load_DataBase();
            Frames frame = new Frames();

            if (BinFile.houses.Count() == 0)
            {
                Console.Clear();
                frame.Menu(35, 6, 12, "Файл пуст!");
                Console.ReadKey(true);
            }
            else
            {
                Input      inp   = new Input();
                ConsoleKey?key   = ConsoleKey.RightArrow;
                int        index = -10;
                while (key != ConsoleKey.Escape)
                {
                    if ((key == ConsoleKey.LeftArrow) && (index != 0))
                    {
                        index -= 10;
                        Write_Page(index, BinFile.houses);
                    }
                    else if ((key == ConsoleKey.RightArrow) && (index + 10 < BinFile.houses.Count))
                    {
                        index += 10;
                        Write_Page(index, BinFile.houses);
                    }
                    else if (key == ConsoleKey.Enter)
                    {
                        Choice(ref BinFile.houses, index, 7, 32, 56, 72);
                    }

                    key = inp.InputKey(ConsoleKey.LeftArrow, ConsoleKey.RightArrow, ConsoleKey.Enter, ConsoleKey.Escape);
                }
            }
            if (frame.Call_MassageBox(30, 6, "Сохранить изменения?"))
            {
                file.SaveAll();
            }
            Console.Clear();
            frame.Menu(30, 3, 18, "Таблица посёлков", "Таблица домов", "Таблица девелоперов");
        }
Beispiel #7
0
        private void BinWin_Loaded(object sender, RoutedEventArgs e)
        {
            this.binFile = new BinFile(@"F:\Project\Code\LuMei\代码\LuMei.TestForm\Katarina.bin");
            // var list = GetFileString(binFile.Entries);
            var list = new ObservableCollection <BinFileValue>()
            {
                new BinFileValue()
                {
                    Value = "100"
                }
            };

            // var heros = new ObservableCollection<BinFileValue>(list);
            datagrid.DataContext = list;
            listview.ItemsSource = list;
            //datagrid.Dispatcher.BeginInvoke(new Action(() => { datagrid.ItemsSource = list; listview.ItemsSource = list; }), null);
        }
Beispiel #8
0
        /// <summary>
        /// Выводит таблицу, внутри которой считывает данные о девелоперах
        /// </summary>
        public void ReadDeveloper()
        {
            BinFile file = new BinFile();

            file.Load_DataBase();
            Input            inp         = new Input();
            Frames           frame       = new Frames();
            List <Developer> _developers = new List <Developer>();
            bool             canСontinue = true;

            Console.Clear();
            Console.WriteLine("╔═══════════════════════╤═══════════════╤══════════════════════════════════╗");
            Console.WriteLine("║       Девелопер       │ Годовой доход │         Адрес девелопера         ║");
            Console.WriteLine("╠═══════════════════════╪═══════════════╪══════════════════════════════════╣");
            Console.WriteLine("║                       │               │                                  ║");
            Console.Write("╚═══════════════════════╧═══════════════╧══════════════════════════════════╝");
            while (canСontinue)
            {
                Developer dev = new Developer("", 0, "");
                Console.SetCursorPosition(2, Console.CursorTop - 1);
                Console.CursorVisible = true;
                if (inp.ReadValid(ref dev.name, 21))
                {
                    Console.SetCursorPosition(26, Console.CursorTop);
                    inp.ReadValid(ref dev.inc, 13);
                    Console.SetCursorPosition(42, Console.CursorTop);
                    inp.ReadValid(ref dev.addr, 32);
                    Console.CursorVisible = false;
                    Console.SetCursorPosition(0, Console.CursorTop + 1);
                    Console.WriteLine("╟───────────────────────┼───────────────┼──────────────────────────────────╢");
                    Console.WriteLine("║                       │               │                                  ║");
                    Console.Write("╚═══════════════════════╧═══════════════╧══════════════════════════════════╝");
                    _developers.Add(dev);
                }
                else
                {
                    canСontinue = false;
                    if (frame.Call_MassageBox(30, 10, "Cозранить изменения?"))
                    {
                        file.SaveInFile(_developers, FileMode.Append);
                    }
                }
            }
            Console.Clear();
            frame.Menu(30, 3, 18, "Таблица посёлков", "Таблица домов", "Таблица девелоперов");
        }
Beispiel #9
0
 private void Save_Click(object sender, EventArgs e)
 {
     if (FormatIndex == NodeIndexBin && treeView1.Nodes.ContainsKey("BIN"))
     {
         var fileList = new List <byte[]>();
         for (int i = 0; i < BinFileList[treeView1.SelectedNode.Index].Count; i++)    // For Each G1T file of the selected bin file
         {
             fileList.Add(KTGZip.Compress(BinFileList[treeView1.SelectedNode.Index][i].Write()));
         }
         BinFile.Write(fileList, FilePathBinGZList[treeView1.SelectedNode.Index]);
     }
     if (FormatIndex == NodeIndexG1T && treeView1.Nodes.ContainsKey("G1T"))
     {
         using (var fs = new FileStream(FilePathG1TList[treeView1.SelectedNode.Index], FileMode.Create))
         {
             var g1tFile = G1TFileList[treeView1.SelectedNode.Index].Write();
             fs.Write(g1tFile, 0x0, g1tFile.Length);
         }
     }
 }
Beispiel #10
0
        public void Load(System.IO.Stream stream)
        {
            binFile = new BinFile(stream);

            for (int sectionIndex = 0; sectionIndex < binFile.Sections.Count; sectionIndex++)
            {
            }


            // Dump the BIN file to CSV.
            using (FileStream streamF = new FileStream("test.csv", FileMode.Create, FileAccess.Write, FileShare.None))
                using (StreamWriter writer = new StreamWriter(streamF, Encoding.UTF8, 1024, true))
                {
                    // Write file header information.
                    Write(writer, 0, $"BIN File Report for", FileName);
                    Write(writer, 0, "Identifier", binFile.Format);
                    Write(writer, 0, "Section count", binFile.Sections.Count);
                    Write(writer, 0, "Unknown", binFile.ID);
                    writer.WriteLine();

                    int sectionIndex = 1;
                    foreach (var section in GetDwordSectionData(binFile))
                    {
                        Write(writer, 0, $"Section {sectionIndex++}");
                        Write(writer, 1, "Identifier", section.Name);
                        Write(writer, 1, "Group count", section.ParamCount);
                        Write(writer, 1, "Type", section.ID.ToString("X"));
                        writer.WriteLine();

                        DwordSectionData sectionData = (DwordSectionData)section.Data;

                        for (int d = 0; d < sectionData.Data.Length; d++)
                        {
                            foreach (Dword[] element in sectionData.Data[d])
                            {
                                Write(writer, 1, String.Join('\t'.ToString(), element));
                            }
                        }
                    }
                }
        }
Beispiel #11
0
        static void Main(string[] args)
        {
            // 构造例子类.  演示 文本文件写入与读取
            TextFile textFile = new TextFile();

            // 写入文件
            textFile.TestWrite();
            // 读取文件.
            textFile.TestRead();



            // 构造例子类.  演示 二进制文件写入与读取
            BinFile binFile = new BinFile();

            // 写入文件
            binFile.TestWrite();
            // 读取文件.
            binFile.TestRead();

            Console.ReadLine();
        }
        // ---- METHODS (PRIVATE) --------------------------------------------------------------------------------------

        private void OpenFile(string fileName)
        {
            try
            {
                _fileName = fileName;
                BinFile   = new BinFile(_fileName);
                CheckBinFile();
                Text = $"{Path.GetFileName(_fileName)} ({Path.GetDirectoryName(_fileName)}) - {Title}";
                ResetCategories();
                UpdateUI();
            }
            catch (Exception ex)
            {
                _fileName = null;
                BinFile   = null;
                Text      = Title;
                UpdateUI();
                UpdateCategoriesInternal(0, 0, 0);
                MessageBox.Show($"Could not open \"{fileName}\":{Environment.NewLine}{ex.Message}", Title,
                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
Beispiel #13
0
    protected void Upload_Click(object sender, EventArgs e)
    {
        string strTmpFolder = HROne.Common.Folder.GetOrCreateSessionTempFolder(Session.SessionID).FullName;;  //Environment.GetFolderPath(Environment.SpecialFolder.InternetCache);
        string strTmpFile   = System.IO.Path.Combine(strTmpFolder, AppUtils.ServerDateTime().ToString("~yyyyMMddHHmmss_") + BinFile.FileName);

        //strTmpFile = strTmpFile.Replace(Path.DirectorySeparatorChar.ToString() + Path.DirectorySeparatorChar, Path.DirectorySeparatorChar);
        BinFile.SaveAs(strTmpFile);

        strSourcePath = strTmpFile;

        UploadPanel.Visible    = false;
        UpgradingPanel.Visible = true;

        Response.Write(@"<script language='javascript'>");
        Response.Write(@"setTimeout('Redirect()',15000);");
        Response.Write(@"function Redirect()");
        Response.Write(@"{");
        Response.Write(@"window.location = 'Logout.aspx"
                       + "';");
        Response.Write(@"}");
        Response.Write(@"</script>");
    }
Beispiel #14
0
        private void SaveAs_Click(object sender, EventArgs e)
        {
            if (FormatIndex == NodeIndexBin && treeView1.Nodes.ContainsKey("BIN"))
            {
                using (var savedialog = new SaveFileDialog())
                {
                    savedialog.DefaultExt = ".bin";
                    savedialog.Filter     = "Koei Tecmo Binary Archive|*.bin";

                    if (savedialog.ShowDialog() == DialogResult.OK)
                    {
                        var fileList = new List <byte[]>();
                        for (int i = 0; i < BinFileList[treeView1.SelectedNode.Index].Count; i++)    // For Each G1T file of the selected bin file
                        {
                            fileList.Add(KTGZip.Compress(BinFileList[treeView1.SelectedNode.Index][i].Write()));
                        }
                        BinFile.Write(fileList, savedialog.FileName);
                    }
                }
            }
            if (FormatIndex == NodeIndexG1T && treeView1.Nodes.ContainsKey("G1T"))
            {
                using (var savedialog = new SaveFileDialog())
                {
                    savedialog.DefaultExt = ".g1t";
                    savedialog.Filter     = "Koei Tecmo Texture Archive|*.g1t";

                    if (savedialog.ShowDialog() == DialogResult.OK)
                    {
                        using (var fs = new FileStream(savedialog.FileName, FileMode.Create))
                        {
                            var g1tFile = G1TFileList[treeView1.SelectedNode.Index].Write();
                            fs.Write(g1tFile, 0x0, g1tFile.Length);
                        }
                    }
                }
            }
        }
Beispiel #15
0
        private static void Main()
        {
            var path =
                Path.Join(GetProgramDirectory(), "code.asm");

            var progText = File.ReadAllText(path);

            var p = new AsmParser();

            /*var sw1 = new Stopwatch();
             * var sw2 = new Stopwatch();
             * const int iterations = 100_000;
             *
             * sw1.Start();
             *
             * for (var i = 0; i < iterations; i++)
             * {
             *  p.Parse(progText);
             * }
             *
             * sw1.Stop();
             *
             * sw2.Start();
             *
             * for (var i = 0; i < iterations; i++)
             * {
             * }
             *
             * sw2.Stop();
             *
             * Console.WriteLine("Elapsed 1 = {0}, {1} per iteration",
             *                sw1.Elapsed,
             *                sw1.Elapsed / iterations);
             * Console.WriteLine("Elapsed 2 = {0}, {1} per iteration",
             *                sw2.Elapsed,
             *                sw2.Elapsed / iterations);
             * return;*/

            var vm = new VirtualMachine();

            /*Breakpoint.BreakpointAction regBp = delegate (int aX)
             * {
             *  Debug.WriteLine($"Register breakpoint = {aX}");
             *  return false;
             * };
             *
             * // Trigger breakpoint when the value 0x123 is written to R1.
             * vm.Debugger.AddBreakpoint(0x123,
             *                        BreakpointType.RegisterWrite,
             *                        regBp,
             *                        Registers.R1);
             *
             * Breakpoint.BreakpointAction memBP = delegate (int aX)
             * {
             *  Debug.WriteLine($"Memory position {aX} was written too!");
             *  return false;
             * };
             *
             * // Trigger breakpoint upon write to memory address 0x1.
             * vm.Debugger.AddBreakpoint(0,
             *                        BreakpointType.MemoryWrite,
             *                        memBP);*/

            // Enable CPU debug logging.
            vm.Cpu.SetLoggingEnabled(true);

            var sectionData = p.Parse(progText);

            var compiler = new Compiler(sectionData, null, true);

            var bin = new BinFile(compiler.Compile());

            //File.Delete(@"D:\test.bin");
            //File.WriteAllBytes(@"D:\test.bin", bin.Raw);

            //var programBytes =
            //    QuickCompile.RawCompile(sectionData, true);

            //var programBytes = QuickCompile.RawCompile(program, true);
            //File.WriteAllBytes(@"D:\Downloads\test.bin", programBytes);

            vm.Run(bin);

            Console.WriteLine("-------------[Registers]------------");
            vm.Cpu.Registers.PrintRegisters();

            Console.WriteLine("---------------[Stack]--------------");
            vm.Memory.PrintStack();

            /*Console.WriteLine("----------[Memory Regions]----------");
             * var regionLines =
             *  vm.Memory.GetFormattedMemoryRegions();
             * foreach (var l in regionLines)
             * {
             *  Console.WriteLine(l);
             * }*/

            Console.WriteLine("------------[Raw Memory]------------");
            var mem = vm.Memory.DirectGetMemoryRaw(0, 0x20);

            foreach (var m in mem)
            {
                Console.Write(m.ToString("X2") + " ");
            }

            Console.WriteLine();

            Console.WriteLine("------------[Disassembly]-----------");
            vm.Disassembler.DisplayDisassembly(true, false, true);

            Console.ReadLine();
        }
Beispiel #16
0
 public InsertBinaryForm(BinFile preTemp)
 {
     InitializeComponent();
     pre = preTemp;
 }
Beispiel #17
0
        // ---- METHODS (PRIVATE) --------------------------------------------------------------------------------------

        private static int Main(string[] args)
        {
            // Read the parameters.
            if (args.Length > 2)
            {
                return(-1);
            }
            string binPath = args[0];
            string csvPath;

            if (args.Length == 2)
            {
                csvPath = args[1];
            }
            else
            {
                csvPath = Path.ChangeExtension(binPath, "csv");
            }

            // Load the BIN file (default to BigEndian for MK8 for now).
            BinFile binFile = new BinFile(binPath);

            // Dump the BIN file to CSV.
            using (FileStream stream = new FileStream(csvPath, FileMode.Create, FileAccess.Write, FileShare.None))
                using (StreamWriter writer = new StreamWriter(stream, Encoding.UTF8, 1024, true))
                {
                    // Write file header information.
                    Write(writer, 0, $"BIN File Report for", binPath);
                    Write(writer, 0, "Identifier", binFile.Identifier);
                    Write(writer, 0, "Section count", binFile.Count);
                    Write(writer, 0, "Unknown", binFile.Unknown);
                    Write(writer, 0, "Version", binFile.Version);
                    writer.WriteLine();

                    // Write info about the sections.
                    for (int sectionIndex = 0; sectionIndex < binFile.Count; sectionIndex++)
                    {
                        SectionBase section = binFile[sectionIndex];
                        Write(writer, 0, $"Section {sectionIndex + 1}");
                        Write(writer, 1, "Identifier", section.Name);
                        Write(writer, 1, "Group count", section.Count);
                        Write(writer, 1, "Type", section.SectionType.ToString("X"));
                        writer.WriteLine();

                        // Dump the groups.
                        int i = 0;
                        foreach (GroupBase group in section)
                        {
                            Write(writer, 1, $"Group {i + 1}");
                            switch (group)
                            {
                            case DwordArrayGroup dwordArrayGroup:
                                foreach (Dword[] element in dwordArrayGroup)
                                {
                                    Write(writer, 1, String.Join(_csvSeparator.ToString(), element));
                                }
                                writer.WriteLine();
                                i++;
                                break;

                            case StringGroup stringGroup:
                                foreach (string element in stringGroup)
                                {
                                    Write(writer, 1, element);
                                }
                                break;

                            default:
                                Write(writer, 1, "Unknown section type.");
                                break;
                            }
                        }
                    }
                }

            return(0);
        }
Beispiel #18
0
        /// <summary>
        /// Выводит список существующих файлов
        /// </summary>
        public void Write_FileList(bool del = false)
        {
            BinFile       file  = new BinFile();
            List <string> files = file.Load_FileList();

            Console.SetCursorPosition(30, 3);
            Frames frame = new Frames();
            Input  inp   = new Input();

            frame.Continuous(30, "Выберете файл", files.ToArray());
            int        y   = 5;
            int        x   = 30;
            int        i   = 0;
            ConsoleKey?key = null;

            frame.Choice(x, y, ConsoleColor.Green, 30);
            while ((key != ConsoleKey.Enter) && (key != ConsoleKey.Escape))
            {
                key = inp.InputKey(ConsoleKey.DownArrow, ConsoleKey.UpArrow, ConsoleKey.Enter, ConsoleKey.Escape);
                switch (key)
                {
                case ConsoleKey.DownArrow:

                    if ((y / 2) < files.Count + 1)
                    {
                        frame.ContinuousChoice(x, y, ConsoleColor.White, 30);
                        y += 2;
                        ++i;
                        frame.Choice(x, y, ConsoleColor.Green, 30);
                        if (y == 7)
                        {
                            Console.SetCursorPosition(x, 5);
                            string line = new string('═', 30);
                            Console.WriteLine($"╠{line}╣");
                        }
                    }
                    break;

                case ConsoleKey.UpArrow:
                    if (y != 5)
                    {
                        frame.ContinuousChoice(x, y, ConsoleColor.White, 30);
                        y -= 2;
                        --i;
                        frame.Choice(x, y, ConsoleColor.Green, 30);

                        if ((y / 2) == files.Count)
                        {
                            Console.SetCursorPosition(x, (files.Count + 1) * 2 + 3);
                            string line = new string('═', 30);
                            Console.WriteLine($"╚{line}╝");
                        }
                    }
                    break;

                case ConsoleKey.Enter:
                    if ((del) && (frame.Call_MassageBox(30, 3, "Удалить файл?")))
                    {
                        File.Delete($"C:/C#/RunDll/XMLfiles/{files[i]}.xml");
                    }
                    else
                    {
                        BinFile.fileName = files[i];
                    }
                    break;
                }
            }
        }
Beispiel #19
0
        private string ChoiceDeveloper(int readPosY)
        {
            BinFile file = new BinFile();

            Console.SetCursorPosition(80, 0);
            List <string> developerNames = file.GetDevNames();
            Frames        frame          = new Frames();

            frame.Continuous(25, "Выберите девелопера", developerNames.ToArray());
            ushort x = 80;
            ushort y = 2;
            int    i = 0;

            frame.Choice(x, y, ConsoleColor.Green, 25);
            Input      inp = new Input();
            ConsoleKey?key = null;

            while (key != ConsoleKey.Enter)
            {
                key = inp.InputKey(ConsoleKey.Escape, ConsoleKey.DownArrow, ConsoleKey.UpArrow, ConsoleKey.Enter);
                switch (key)
                {
                case ConsoleKey.DownArrow:
                    if ((y / 2) < developerNames.Count - 1)
                    {
                        i++;
                        frame.ContinuousChoice(x, y, ConsoleColor.White, 25);
                        y += 2;
                        frame.Choice(x, y, ConsoleColor.Green, 25);
                        if (y == 4)
                        {
                            Console.SetCursorPosition(x, 2);
                            string line = new string('═', 25);
                            Console.WriteLine($"╠{line}╣");
                        }
                    }
                    break;

                case ConsoleKey.UpArrow:
                    if ((y / 2) >= 2)
                    {
                        i--;
                        frame.ContinuousChoice(x, y, ConsoleColor.White, 25);
                        y -= 2;
                        //Console.WriteLine(y);
                        //Console.WriteLine(developers.Count);
                        frame.Choice(x, y, ConsoleColor.Green, 25);
                        if ((y / 2) == developerNames.Count - 2)
                        {
                            Console.SetCursorPosition(x, (developerNames.Count) * 2);
                            string line = new string('═', 25);
                            Console.WriteLine($"╚{line}╝");
                        }
                    }
                    break;

                case ConsoleKey.Enter:
                    Console.SetCursorPosition(27, readPosY);
                    Console.Write(developerNames[i]);
                    break;
                }
            }
            return(developerNames[i]);
        }
Beispiel #20
0
        /// <summary>
        /// Выводит таблицу, внутри которой считывает данные о посёлке
        /// </summary>
        public void ReadVellage()
        {
            Console.Clear();
            BinFile file = new BinFile();

            file.Load_DataBase();
            Frames frame = new Frames();

            if (BinFile.developers.Count == 0)
            {
                Console.SetCursorPosition(14, 6);
                frame.Continuous(50, "Ошибка!", "Необходимо сначала заполнить таблицу девелоперов");
                Console.ReadKey(true);
            }
            else
            {
                //file.Load_DataBase();
                Input          inp         = new Input();
                List <Village> _villages   = new List <Village>();
                bool           canСontinue = true;

                Console.WriteLine("╔════════════════════════╤═══════════════════════╤═══════════════╤═══════════╗");
                Console.WriteLine("║    Назвение посёлка    │       Девелопер       │ Площадь в м^2 │ Население ║");
                Console.WriteLine("╠════════════════════════╪═══════════════════════╪═══════════════╪═══════════╣");
                Console.WriteLine("║                        │                       │               │           ║");
                Console.Write("╚════════════════════════╧═══════════════════════╧═══════════════╧═══════════╝");

                while (canСontinue)
                {
                    Village vill = new Village("", "", 0, 0);
                    Console.SetCursorPosition(2, Console.CursorTop - 1);
                    Console.CursorVisible = true;
                    if (inp.ReadValid(ref vill.name, 22))
                    {
                        Console.SetCursorPosition(27, Console.CursorTop);
                        Console.CursorVisible = false;
                        vill.dev = ChoiceDeveloper(Console.CursorTop);
                        Console.CursorVisible = true;
                        Console.SetCursorPosition(51, Console.CursorTop);
                        inp.ReadValid(ref vill.area, 13);
                        Console.SetCursorPosition(67, Console.CursorTop);
                        inp.ReadValid(ref vill.people, 9);
                        Console.CursorVisible = false;
                        Console.SetCursorPosition(0, Console.CursorTop + 1);
                        Console.WriteLine("╟────────────────────────┼───────────────────────┼───────────────┼───────────╢");
                        Console.WriteLine("║                        │                       │               │           ║");
                        Console.Write("╚════════════════════════╧═══════════════════════╧═══════════════╧═══════════╝");
                        _villages.Add(vill);
                    }
                    else
                    {
                        canСontinue = false;
                        if (frame.Call_MassageBox(30, 10, "Cозранить изменения?"))
                        {
                            file.SaveInFile(_villages, FileMode.Append);
                        }
                    }
                }
            }
            Console.Clear();
            frame.Menu(30, 3, 18, "Таблица посёлков", "Таблица домов", "Таблица девелоперов");
        }
Beispiel #21
0
 public MainForm()
 {
     InitializeComponent();
     binFile = new BinFile();
 }
Beispiel #22
0
 private void BinWin_Loaded(object sender, RoutedEventArgs e)
 {
     checked
     {
         this.binFile = new BinFile(@"F:\Project\Code\LuMei\代码\LuMei.TestForm\Katarina.bin");
         if (this.binFile != null)
         {
             BinWin BinWin = this;
             if (this.binFile == null)
             {
                 base.Close();
             }
             else
             {
                 this.textBlockType.Visibility = Visibility.Hidden;
                 TreeViewItem treeViewItem = new TreeViewItem
                 {
                     IsExpanded = true,
                     Tag        = this.binFile
                 };
                 treeViewItem.Header = new TextBlock
                 {
                     Text = this.binFile.FilePath.Split(new char[]
                     {
                         '\\'
                     }).Last <string>(),
                     FontSize   = 17.0,
                     FontWeight = FontWeights.Bold
                 };
                 this.treeViewProps.Items.Add(treeViewItem);
                 int num = this.binFile.Entries.Count - 1;
                 for (int i = 0; i <= num; i++)
                 {
                     BinFileEntry binFileEntry  = this.binFile.Entries[i];
                     TreeViewItem treeViewItem2 = new TreeViewItem
                     {
                         IsExpanded = true,
                         Tag        = binFileEntry
                     };
                     StackPanel stackPanel = new StackPanel
                     {
                         Orientation = Orientation.Horizontal
                     };
                     if (binFileEntry.Prop != null)
                     {
                         string str = Convert.ToString(binFileEntry.Prop.Hash);
                         if (binFileEntry.Prop.Prop != null)
                         {
                             str = binFileEntry.Prop.Prop;
                         }
                         stackPanel.Children.Add(new TextBlock
                         {
                             Text       = "Entry " + str,
                             FontSize   = 16.0,
                             FontWeight = FontWeights.Medium,
                             Foreground = new SolidColorBrush(Colors.Gray)
                         });
                     }
                     treeViewItem2.Header = stackPanel;
                     this.method_6(ref binFileEntry.Values, ref treeViewItem2);
                     treeViewItem.Items.Add(treeViewItem2);
                 }
             }
         }
     }
 }