Esempio n. 1
0
        /// <summary>
        /// Converts a single <see cref="MappingDataRange">MappingDataRange</see> into a string, stripping the trailing null character. If
        /// the string doesn't contain null characters, the empty string is returned.
        /// </summary>
        /// <param name="dataRange">The <see cref="MappingDataRange">MappingDataRange</see> to convert</param>
        /// <returns>The resulting string</returns>
        public string Format(MappingDataRange dataRange)
        {
            if (dataRange == null)
            {
                throw new ArgumentNullException("dataRange");
            }

            var data = dataRange.GetData();

            if ((data.Length & 1) != 0)
            {
                throw new LinguisticException(LinguisticException.InvalidArgs);
            }

            var nullIndex = data.Length;

            for (var i = 0; i < data.Length; i += 2)
            {
                if (data[i] == 0 && data[i + 1] == 0)
                {
                    nullIndex = i;
                    break;
                }
            }

            var resultText = Encoding.Unicode.GetString(data, 0, nullIndex);

            return(resultText);
        }
Esempio n. 2
0
        /// <summary>
        /// Converts a single <see cref="MappingDataRange">MappingDataRange</see> into a string.
        /// </summary>
        /// <param name="dataRange">The <see cref="MappingDataRange">MappingDataRange</see> to convert</param>
        /// <returns>The resulting string</returns>
        public string Format(MappingDataRange dataRange)
        {
            byte[] data       = dataRange.GetData();
            string resultText = Encoding.Unicode.GetString(data);

            return(resultText);
        }
Esempio n. 3
0
        /// <summary>
        /// Converts a single <see cref="MappingDataRange">MappingDataRange</see> into a string array by splitting on each null character and
        /// removing the empty entries.
        /// </summary>
        /// <param name="dataRange">The <see cref="MappingDataRange">MappingDataRange</see> to convert</param>
        /// <returns>The resulting string array</returns>
        public string[] Format(MappingDataRange dataRange)
        {
            byte[] data       = dataRange.GetData();
            string resultText = Encoding.Unicode.GetString(data);

            return(resultText.Split(Separator, StringSplitOptions.RemoveEmptyEntries));
        }
Esempio n. 4
0
        /// <summary>
        /// Converts a single <see cref="MappingDataRange">MappingDataRange</see> into a string array by splitting on each null character and
        /// removing the empty entries.
        /// </summary>
        /// <param name="dataRange">The <see cref="MappingDataRange">MappingDataRange</see> to convert</param>
        /// <returns>The resulting string array</returns>
        public string[] Format(MappingDataRange dataRange)
        {
            if (dataRange == null)
            {
                throw new ArgumentNullException("dataRange");
            }

            byte[] data       = dataRange.GetData();
            string resultText = Encoding.Unicode.GetString(data);

            return(resultText.Split(Separator, StringSplitOptions.RemoveEmptyEntries));
        }
Esempio n. 5
0
 /// <summary>
 /// An array of <see cref="MappingDataRange">MappingDataRange</see> objects containing all recognized text range results. This member is populated
 /// by MappingService.RecognizeText or asynchronously with
 /// MappingService.BeginRecognizeText.
 /// </summary>
 public MappingDataRange[] GetResultRanges()
 {
     MappingDataRange[] result = new MappingDataRange[_win32PropertyBag._rangesCount];
     for (int i = 0; i < result.Length; ++i)
     {
         MappingDataRange range = new MappingDataRange();
         InteropTools.Unpack(out range._win32DataRange,
                             (IntPtr)((UInt64)_win32PropertyBag._ranges + ((UInt64)i * InteropTools.SizeOfWin32DataRange)));
         result[i] = range;
     }
     return(result);
 }
        /// <summary>Converts a single <see cref="MappingDataRange">MappingDataRange</see> into a string.</summary>
        /// <param name="dataRange">The <see cref="MappingDataRange">MappingDataRange</see> to convert</param>
        /// <returns>The resulting string</returns>
        public string Format(MappingDataRange dataRange)
        {
            if (dataRange == null)
            {
                throw new ArgumentNullException("dataRange");
            }

            var data       = dataRange.GetData();
            var resultText = Encoding.Unicode.GetString(data);

            return(resultText);
        }
Esempio n. 7
0
        /// <summary>
        /// An array of <see cref="MappingDataRange">MappingDataRange</see> objects containing all recognized text range results. This member is populated
        /// by MappingService.RecognizeText or asynchronously with
        /// MappingService.BeginRecognizeText.
        /// </summary>
        public MappingDataRange[] GetResultRanges()
        {
            var result = new MappingDataRange[_win32PropertyBag._rangesCount];

            for (int i = 0; i < result.Length; ++i)
            {
                result[i] = new MappingDataRange
                {
                    _win32DataRange = Win32NativeInteropTools.Unpack <Win32DataRange>(
                        (IntPtr)((ulong)_win32PropertyBag._ranges + ((ulong)i * InteropTools.SizeOfWin32DataRange)))
                };
            }
            return(result);
        }
Esempio n. 8
0
        /// <summary>
        /// Converts a single <see cref="MappingDataRange">MappingDataRange</see> into a string, stripping the trailing null character.
        /// If the string doesn't contain null characters, the empty string is returned.
        /// </summary>
        /// <param name="dataRange">The <see cref="MappingDataRange">MappingDataRange</see> to convert</param>
        /// <returns>The resulting string</returns>
        public string Format(MappingDataRange dataRange)
        {
            byte[] data = dataRange.GetData();
            if ((data.Length & 1) != 0)
            {
                throw new LinguisticException(LinguisticException.E_INVALIDARG);
            }
            int nullIndex = data.Length;

            for (int i = 0; i < data.Length; i += 2)
            {
                if (data[i] == 0 && data[i + 1] == 0)
                {
                    nullIndex = i;
                    break;
                }
            }
            string resultText = Encoding.Unicode.GetString(data, 0, nullIndex);

            return(resultText);
        }