Ejemplo n.º 1
0
        private void LoadImage(object sender, EventArgs e)
        {
            if (Image != null && Image.Modified)
            {
                if (MessageBox.Show("Образ не был сохранен. Продолжить?", "", MessageBoxButtons.YesNo) != DialogResult.Yes)
                {
                    return;
                }
            }
            OpenFileDialog openDialog = new OpenFileDialog()
            {
                Filter = "TRD (*.trd)|*.trd|Modified TRD (*.trd)|*.trd|FDI (*.fdi)|*.fdi|All Files (*.*)|*.*"
            };

            if (openDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            TrDosImage image = new TrDosImage();
            int        result;

            if (openDialog.FilterIndex == 1)
            {
                result = image.LoadTrd(openDialog.FileName, File.ReadAllBytes(openDialog.FileName), false, map);
            }
            else if (openDialog.FilterIndex == 2)
            {
                result = image.LoadTrd(openDialog.FileName, File.ReadAllBytes(openDialog.FileName), true, map);
            }
            else if (openDialog.FilterIndex == 3)
            {
                string text;
                result = image.LoadFdi(openDialog.FileName, File.ReadAllBytes(openDialog.FileName), out text, map);
            }
            else
            {
                result = image.LoadAutodetect(openDialog.FileName, map);
            }
            if (result != 0)
            {
                Log.Error?.Out($"Ошибка при чтении файла: {openDialog.FileName}");
                return;
            }
            Image       = image;
            map.Image   = Image;
            stats.Image = Image;
            map.Repaint();
            stats.Repaint();
            SetEnabled();
            int loadedSize = Image.SizeTracks;

            Log.Info?.Out($"Образ загружен. Имя: {Image.Name} | Размер: {loadedSize} треков | FileName: {openDialog.FileName}");
        }
Ejemplo n.º 2
0
        private void MergeImage(object sender, EventArgs e)
        {
            OpenFileDialog openDialog = new OpenFileDialog()
            {
                Filter = "TRD (*.trd)|*.trd|Modified TRD (*.trd)|*.trd|FDI (*.fdi)|*.fdi|All Files (*.*)|*.*"
            };

            if (openDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            TrDosImage image = new TrDosImage();
            int        result;

            if (openDialog.FilterIndex == 1)
            {
                result = image.LoadTrd(openDialog.FileName, File.ReadAllBytes(openDialog.FileName), false);
            }
            else if (openDialog.FilterIndex == 2)
            {
                result = image.LoadTrd(openDialog.FileName, File.ReadAllBytes(openDialog.FileName), true);
            }
            else if (openDialog.FilterIndex == 3)
            {
                string text;
                result = image.LoadFdi(openDialog.FileName, File.ReadAllBytes(openDialog.FileName), out text);
            }
            else
            {
                result = image.LoadAutodetect(openDialog.FileName);
            }
            if (result != 0)
            {
                Log.Warn?.Out($"Ошибка при чтении файла: {openDialog.FileName}");
                return;
            }
            int addedReadSectors;

            Image.Merge(image, out addedReadSectors);
            map.Repaint();
            stats.Repaint();
            Log.Info?.Out($"Образ слит с образом из файла: {openDialog.FileName}. Добавлено прочитанных секторов: {addedReadSectors}");
        }