public static PointerListSaveFile loadSaveFile(String saveFilePath) { if (serializer == null) { serializer = new XmlSerializer(typeof(PointerListSaveFile)); } PointerListSaveFile saveFile = null; using (StreamReader reader = new StreamReader(saveFilePath)) saveFile = (PointerListSaveFile)serializer.Deserialize(reader); return(saveFile); }
private void btnSavePointerList_OnClick() { SaveFileDialog sfdialog = new SaveFileDialog(); if (sfdialog.ShowDialog() == DialogResult.OK) { var saveFile = new PointerListSaveFile(); saveFile.level = Convert.ToInt32(numericPointerLevel.Value); foreach (var ptrResult in pointerResults) { saveFile.pointers.Add(ptrResult); } saveFile.saveToFile(sfdialog.FileName); } }
private void btnLoadPointerList_OnClick() { OpenFileDialog ofdialog = new OpenFileDialog(); if (ofdialog.ShowDialog() == DialogResult.OK) { var saveFile = PointerListSaveFile.loadSaveFile(ofdialog.FileName); if (saveFile != null) { curScanStatus = ScanStatus.FirstScan; pointerResults.Clear(); dataGridPointerList.Rows.Clear(); dataGridPointerList.Columns.Clear(); pointerList.Clear(); for (Int32 i = 0; i < saveFile.level; i++) { dataGridPointerList.Columns.Add(String.Format("Offset {0}", i + 1), String.Format("Offset {0}", i + 1)); dataGridPointerList.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; } dataGridPointerList.Columns.Add("Base Address", "Base Address"); dataGridPointerList.Columns.Add("Base Section", "Base Section"); dataGridPointerList.Columns[saveFile.level + 0].SortMode = DataGridViewColumnSortMode.NotSortable; dataGridPointerList.Columns[saveFile.level + 1].SortMode = DataGridViewColumnSortMode.NotSortable; pointerList.Init(); foreach (var ptrResult in saveFile.pointers) { Int32 row_index = dataGridPointerList.Rows.Add(); DataGridViewCellCollection row = dataGridPointerList.Rows[row_index].Cells; for (Int32 i = 0; i < ptrResult.offsets.Length; i++) { row[i].Value = (ptrResult.offsets[i].ToString("X")); //offset } if (ptrResult.offsets.Length > 0) { row[row.Count - 2].Value = (ptrResult.GetBaseAddress(ProcessManager.mInstance.MappedSectionList).ToString("X")); //address row[row.Count - 1].Value = (ProcessManager.mInstance.MappedSectionList.GetSectionName(ptrResult.baseSectionID)); //section } } pointerResults = new List <PointerResult>(saveFile.pointers); } } }