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}"); }
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}"); }