private static void CopyAsTable(List <WatchVariableControl> controls) { if (controls.Count == 0) { return; } List <uint> addresses = controls[0].GetBaseAddresses(); if (addresses.Count == 0) { return; } List <string> hexAddresses = addresses.ConvertAll(address => HexUtilities.FormatValue(address)); string header = "Vars\t" + string.Join("\t", hexAddresses); List <string> names = controls.ConvertAll(control => control.VarName); List <List <object> > valuesTable = controls.ConvertAll(control => control.GetValues()); List <string> valuesStrings = new List <string>(); for (int i = 0; i < names.Count; i++) { string line = names[i] + "\t" + string.Join("\t", valuesTable[i]); valuesStrings.Add(line); } string output = header + "\r\n" + string.Join("\r\n", valuesStrings); Clipboard.SetText(output); }
public static void Debug2() { List <string> outputList = new List <string>(); foreach (byte processGroupByte in ObjectSlotsConfig.ProcessingGroups) { uint processGroupStructAddress = ObjectSlotsConfig.ProcessGroupsStartAddress + processGroupByte * ObjectSlotsConfig.ProcessGroupStructSize; uint nextAddress = processGroupStructAddress + ObjectConfig.ProcessedNextLinkOffset; uint prevAddress = processGroupStructAddress + ObjectConfig.ProcessedPreviousLinkOffset; string nextString = processGroupByte + "\t" + "next" + "\t" + HexUtilities.FormatValue(nextAddress); string prevString = processGroupByte + "\t" + "prev" + "\t" + HexUtilities.FormatValue(prevAddress); outputList.Add(nextString); outputList.Add(prevString); } outputList.Add("vacant\t\t" + HexUtilities.FormatValue(ObjectSlotsConfig.VacantSlotsNodeAddress + ObjectConfig.ProcessedNextLinkOffset)); InfoForm.ShowValue(String.Join("\r\n", outputList)); }