Ejemplo n.º 1
0
        /// <summary>
        /// Get the file's content as a string.
        /// </summary>
        /// <param name="filename">Currnet file's path</param>
        /// <returns>Content as a string, string.empty on error</returns>
        public static string Parse(string filename)
        {
            IFilter filter = null;

            try
            {
                StringBuilder plainTextResult = new StringBuilder();
                filter = loadIFilter(filename);

                STAT_CHUNK   ps     = new STAT_CHUNK();
                IFILTER_INIT mFlags = 0;

                uint i = 0;
                filter.Init(mFlags, 0, null, ref i);

                int resultChunk = 0;

                resultChunk = filter.GetChunk(out ps);
                while (resultChunk == 0)
                {
                    if (ps.flags == CHUNKSTATE.CHUNK_TEXT)
                    {
                        uint sizeBuffer = 60000;
                        int  resultText = 0;
                        while (resultText == Constants.FILTER_S_LAST_TEXT || resultText == 0)
                        {
                            sizeBuffer = 60000;
                            System.Text.StringBuilder sbBuffer = new System.Text.StringBuilder((int)sizeBuffer);
                            resultText = filter.GetText(ref sizeBuffer, sbBuffer);

                            if (sizeBuffer > 0 && sbBuffer.Length > 0)
                            {
                                string chunk = sbBuffer.ToString(0, (int)sizeBuffer);
                                plainTextResult.Append(chunk);
                            }
                        }
                    }
                    resultChunk = filter.GetChunk(out ps);
                }
                return(plainTextResult.ToString());
            }
            finally
            {
                if (filter != null)
                {
                    Marshal.ReleaseComObject(filter);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Get the file's content as a string.
        /// </summary>
        /// <param name="filename">Currnet file's path</param>
        /// <returns>Content as a string, string.empty on error</returns>
        public static string Parse(string filename)
        {
            IFilter filter = null;

            try
            {
                StringBuilder plainTextResult = new StringBuilder();
                filter = loadIFilter(filename);

                STAT_CHUNK ps = new STAT_CHUNK();
                IFILTER_INIT mFlags = 0;

                uint i = 0;
                filter.Init(mFlags, 0, null, ref i);

                int resultChunk = 0;

                resultChunk = filter.GetChunk(out ps);
                while (resultChunk == 0)
                {
                    if (ps.flags == CHUNKSTATE.CHUNK_TEXT)
                    {
                        uint sizeBuffer = 60000;
                        int resultText = 0;
                        while (resultText == Constants.FILTER_S_LAST_TEXT || resultText == 0)
                        {
                            sizeBuffer = 60000;
                            System.Text.StringBuilder sbBuffer = new System.Text.StringBuilder((int)sizeBuffer);
                            resultText = filter.GetText(ref sizeBuffer, sbBuffer);

                            if (sizeBuffer > 0 && sbBuffer.Length > 0)
                            {
                                string chunk = sbBuffer.ToString(0, (int)sizeBuffer);
                                plainTextResult.Append(chunk);
                            }
                        }
                    }
                    resultChunk = filter.GetChunk(out ps);
                }
                return plainTextResult.ToString();
            }
            finally
            {
                if (filter != null)
                    Marshal.ReleaseComObject(filter);
            }
        }