private void openAddressFileToolStripButton_Click(object sender, EventArgs e) { using (var ofd = new OpenFileDialog()) { ofd.CheckFileExists = true; ofd.Filter = $"All Scanner Types |*{ReClassScanFile.FileExtension};*{CheatEngineFile.FileExtension};*{CrySearchFile.FileExtension}" + $"|{ReClassScanFile.FormatName} (*{ReClassScanFile.FileExtension})|*{ReClassScanFile.FileExtension}" + $"|{CheatEngineFile.FormatName} (*{CheatEngineFile.FileExtension})|*{CheatEngineFile.FileExtension}" + $"|{CrySearchFile.FormatName} (*{CrySearchFile.FileExtension})|*{CrySearchFile.FileExtension}"; if (ofd.ShowDialog() == DialogResult.OK) { IScannerImport import = null; switch (Path.GetExtension(ofd.FileName)?.ToLower()) { case ReClassScanFile.FileExtension: import = new ReClassScanFile(); break; case CheatEngineFile.FileExtension: import = new CheatEngineFile(); break; case CrySearchFile.FileExtension: import = new CrySearchFile(); break; default: Program.Logger.Log(LogLevel.Error, $"The file '{ofd.FileName}' has an unknown type."); break; } if (import != null) { if (addressListMemoryRecordList.Records.Any()) { if (MessageBox.Show("The address list contains addresses. Do you really want to open the file?", $"{Constants.ApplicationName} Scanner", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } } if (import is ReClassScanFile) { addressFilePath = ofd.FileName; } addressListMemoryRecordList.SetRecords( import.Load(ofd.FileName, Program.Logger) .Select(r => { r.ResolveAddress(Program.RemoteProcess); r.RefreshValue(Program.RemoteProcess); return(r); }) ); } } } }
private void saveAddressFileToolStripButton_Click(object sender, EventArgs e) { if (addressListMemoryRecordList.Records.None()) { return; } if (string.IsNullOrEmpty(addressFilePath)) { saveAsToolStripButton_Click(sender, e); return; } var file = new ReClassScanFile(); file.Save(addressListMemoryRecordList.Records, addressFilePath, Program.Logger); }