public static byte[] TryParseData(string text, HexDataKind dataKind, bool isBigEndian) { switch (dataKind) { case HexDataKind.Bytes: return(TryParseBytes(text)); case HexDataKind.Utf8String: return(TryParseUtf8String(text)); case HexDataKind.Utf16String: return(TryParseUtf16String(text, isBigEndian)); case HexDataKind.Byte: return(TryParseByte(text)); case HexDataKind.SByte: return(TryParseSByte(text)); case HexDataKind.Int16: return(TryParseInt16(text, isBigEndian)); case HexDataKind.UInt16: return(TryParseUInt16(text, isBigEndian)); case HexDataKind.Int32: return(TryParseInt32(text, isBigEndian)); case HexDataKind.UInt32: return(TryParseUInt32(text, isBigEndian)); case HexDataKind.Int64: return(TryParseInt64(text, isBigEndian)); case HexDataKind.UInt64: return(TryParseUInt64(text, isBigEndian)); case HexDataKind.Single: return(TryParseSingle(text, isBigEndian)); case HexDataKind.Double: return(TryParseDouble(text, isBigEndian)); default: return(null); } }
public override bool IsSearchDataValid(HexDataKind dataKind, string searchString, bool matchCase, bool isBigEndian) { if (searchString == string.Empty) return false; switch (dataKind) { case HexDataKind.Bytes: return hexSearchServiceProvider.IsValidByteSearchString(searchString); case HexDataKind.Utf8String: case HexDataKind.Utf16String: return true; case HexDataKind.Byte: case HexDataKind.SByte: case HexDataKind.Int16: case HexDataKind.UInt16: case HexDataKind.Int32: case HexDataKind.UInt32: case HexDataKind.Int64: case HexDataKind.UInt64: case HexDataKind.Single: case HexDataKind.Double: return DataParser.TryParseData(searchString, dataKind, isBigEndian) != null; default: throw new InvalidOperationException(); } }
public override bool IsSearchDataValid(HexDataKind dataKind, string searchString, bool matchCase, bool isBigEndian) { if (searchString == string.Empty) { return(false); } switch (dataKind) { case HexDataKind.Bytes: return(hexSearchServiceProvider.IsValidByteSearchString(searchString)); case HexDataKind.Utf8String: case HexDataKind.Utf16String: return(true); case HexDataKind.Byte: case HexDataKind.SByte: case HexDataKind.Int16: case HexDataKind.UInt16: case HexDataKind.Int32: case HexDataKind.UInt32: case HexDataKind.Int64: case HexDataKind.UInt64: case HexDataKind.Single: case HexDataKind.Double: return(DataParser.TryParseData(searchString, dataKind, isBigEndian) != null); default: throw new InvalidOperationException(); } }
public override void SaveSettings(string searchString, string replaceString, bool matchCase, bool bigEndian, HexDataKind dataKind) { this.searchString = searchString ?? throw new ArgumentNullException(nameof(searchString)); this.replaceString = replaceString ?? throw new ArgumentNullException(nameof(replaceString)); this.matchCase = matchCase; this.bigEndian = bigEndian; this.dataKind = dataKind; }
public override void SaveSettings(string searchString, string replaceString, bool matchCase, bool bigEndian, HexDataKind dataKind) { if (searchString == null) throw new ArgumentNullException(nameof(searchString)); if (replaceString == null) throw new ArgumentNullException(nameof(replaceString)); this.searchString = searchString; this.replaceString = replaceString; this.matchCase = matchCase; this.bigEndian = bigEndian; this.dataKind = dataKind; }
public override HexSearchService TryCreateHexSearchService(HexDataKind dataKind, string searchString, bool matchCase, bool isBigEndian) { if (searchString == string.Empty) { return(null); } byte[] data; switch (dataKind) { case HexDataKind.Bytes: if (!hexSearchServiceProvider.IsValidByteSearchString(searchString)) { return(null); } return(hexSearchServiceProvider.CreateByteSearchService(searchString)); case HexDataKind.Utf8String: return(hexSearchServiceProvider.CreateUtf8StringSearchService(searchString, matchCase)); case HexDataKind.Utf16String: return(hexSearchServiceProvider.CreateUtf16StringSearchService(searchString, matchCase, isBigEndian)); case HexDataKind.Byte: case HexDataKind.SByte: case HexDataKind.Int16: case HexDataKind.UInt16: case HexDataKind.Int32: case HexDataKind.UInt32: case HexDataKind.Int64: case HexDataKind.UInt64: case HexDataKind.Single: case HexDataKind.Double: data = DataParser.TryParseData(searchString, dataKind, isBigEndian); if (data == null) { return(null); } return(hexSearchServiceProvider.CreateByteSearchService(data)); default: throw new InvalidOperationException(); } }
public override HexSearchService TryCreateHexSearchService(HexDataKind dataKind, string searchString, bool matchCase, bool isBigEndian) { if (searchString == string.Empty) return null; byte[] data; switch (dataKind) { case HexDataKind.Bytes: if (!hexSearchServiceProvider.IsValidByteSearchString(searchString)) return null; return hexSearchServiceProvider.CreateByteSearchService(searchString); case HexDataKind.Utf8String: return hexSearchServiceProvider.CreateUtf8StringSearchService(searchString, matchCase); case HexDataKind.Utf16String: return hexSearchServiceProvider.CreateUtf16StringSearchService(searchString, matchCase, isBigEndian); case HexDataKind.Byte: case HexDataKind.SByte: case HexDataKind.Int16: case HexDataKind.UInt16: case HexDataKind.Int32: case HexDataKind.UInt32: case HexDataKind.Int64: case HexDataKind.UInt64: case HexDataKind.Single: case HexDataKind.Double: data = DataParser.TryParseData(searchString, dataKind, isBigEndian); if (data == null) return null; return hexSearchServiceProvider.CreateByteSearchService(data); default: throw new InvalidOperationException(); } }
public abstract HexSearchService TryCreateHexSearchService(HexDataKind dataKind, string searchString, bool matchCase, bool isBigEndian);
public abstract bool IsSearchDataValid(HexDataKind dataKind, string searchString, bool matchCase, bool isBigEndian);
public abstract HexSearchService?TryCreateHexSearchService(HexDataKind dataKind, string searchString, bool matchCase, bool isBigEndian);
public abstract void SaveSettings(string searchString, string replaceString, bool matchCase, bool bigEndian, HexDataKind dataKind);
public static byte[] TryParseData(string text, HexDataKind dataKind, bool isBigEndian) { switch (dataKind) { case HexDataKind.Bytes: return TryParseBytes(text); case HexDataKind.Utf8String: return TryParseUtf8String(text); case HexDataKind.Utf16String: return TryParseUtf16String(text, isBigEndian); case HexDataKind.Byte: return TryParseByte(text); case HexDataKind.SByte: return TryParseSByte(text); case HexDataKind.Int16: return TryParseInt16(text, isBigEndian); case HexDataKind.UInt16: return TryParseUInt16(text, isBigEndian); case HexDataKind.Int32: return TryParseInt32(text, isBigEndian); case HexDataKind.UInt32: return TryParseUInt32(text, isBigEndian); case HexDataKind.Int64: return TryParseInt64(text, isBigEndian); case HexDataKind.UInt64: return TryParseUInt64(text, isBigEndian); case HexDataKind.Single: return TryParseSingle(text, isBigEndian); case HexDataKind.Double: return TryParseDouble(text, isBigEndian); default: return null; } }
public DataKindVM(HexDataKind dataKind, string displayName, string inputGestureText = null) { DataKind = dataKind; DisplayName = displayName; InputGestureText = inputGestureText == null ? string.Empty : "(" + inputGestureText + ")"; }
public SearchOptions(HexBufferSpan searchRange, HexBufferPoint startingPosition, HexDataKind dataKind, string searchString, OurFindOptions findOptions, bool isBigEndian) { SearchRange = searchRange; StartingPosition = startingPosition; DataKind = dataKind; SearchString = searchString; FindOptions = findOptions; IsBigEndian = isBigEndian; }