/// <summary> /// 検索を実行 /// </summary> private void doSearch() { var currentSearchType = (SearchType)searchTypeComboBox.SelectedItem; byte[] searchBytes = null; try { switch (currentSearchType) { case SearchType.Hex: searchBytes = HexConverter.ToBytes(searchContentComboBox.Text); break; case SearchType.Byte: searchBytes = new byte[] { byte.Parse(searchContentComboBox.Text) }; break; case SearchType.Int16: searchBytes = BitConverter.GetBytes(Int16.Parse(searchContentComboBox.Text)); break; case SearchType.UInt16: searchBytes = BitConverter.GetBytes(UInt16.Parse(searchContentComboBox.Text)); break; case SearchType.Int32: searchBytes = BitConverter.GetBytes(Int32.Parse(searchContentComboBox.Text)); break; case SearchType.UInt32: searchBytes = BitConverter.GetBytes(UInt32.Parse(searchContentComboBox.Text)); break; case SearchType.Int64: searchBytes = BitConverter.GetBytes(Int64.Parse(searchContentComboBox.Text)); break; case SearchType.UInt64: searchBytes = BitConverter.GetBytes(UInt64.Parse(searchContentComboBox.Text)); break; case SearchType.Single: searchBytes = BitConverter.GetBytes(Single.Parse(searchContentComboBox.Text)); break; } if (searchBytes != null) { highlightHex(HexConverter.ToHex(searchBytes)); } } catch { clearHighlight(); return; } }
/// <summary> /// 現在ヘキサビューで選択している部分のバイト配列を取得する /// 1byte分も選択されていない場合は要素数0のバイト配列を返す /// nullを返すわけではないので注意 /// </summary> /// <returns></returns> private byte[] getSelectedBytes() { var selectedText = hexTextBox.SelectedText.Trim(); if (selectedText.Length < 2) { return(new byte[0]); } return(HexConverter.ToBytes(hexTextBox.SelectedText)); }
/// <summary> /// 16進数表記文字列をHexオブジェクトにぱーすする /// </summary> /// <param name="hexString"></param> /// <returns></returns> public static Hex Parse(string hexString) { return(new Hex(HexConverter.ToBytes(hexString))); }