/// <summary>
 /// 中文分词词语集合写入文本文件
 /// </summary>
 private unsafe static void writeTxtFile()
 {
     string[] words = Words;
     using (TmphUnmanagedStream wordStream = new TmphUnmanagedStream())
     {
         *(int*)wordStream.Data = words.Length;
         wordStream.Unsafer.AddLength(sizeof(int));
         foreach (string word in words)
         {
             wordStream.Write(word);
             wordStream.Write((char)0);
         }
         TmphSubArray<byte> data = IO.Compression.TmphStream.Deflate.GetCompress(wordStream.GetArray(), 0);
         using (FileStream fileStream = new FileStream(Laurent.Lee.CLB.Config.TmphSearch.Default.WordTxtFileName, FileMode.Create, FileAccess.Write, FileShare.None))
         {
             fileStream.Write(data.Array, data.StartIndex, data.Count);
         }
     }
 }
 /// <summary>
 ///     格式化ajax字符串
 /// </summary>
 /// <param name="jsStream">JS字符流</param>
 /// <param name="formatStream">格式化JSON字符流</param>
 internal static unsafe void FormatJavascript(TmphCharStream jsStream, TmphUnmanagedStream formatStream)
 {
     var length = formatLength(jsStream);
     if (length == 0)
     {
         if (jsStream.Length != 0) formatQuote(jsStream, formatStream);
         return;
     }
     length += jsStream.Length;
     formatStream.PrepLength(length <<= 1);
     for (char* start = jsStream.Char, write = (char*)(formatStream.CurrentData), end = start + jsStream.Length;
         start != end;
         ++start)
     {
         if (*start == Quote) *write++ = '"';
         else if (*start == '\n')
         {
             *(int*)write = ('n' << 16) + '\\';
             write += 2;
         }
         else if (*start == '\r')
         {
             *(int*)write = ('r' << 16) + '\\';
             write += 2;
         }
         else
         {
             if (*start == '"' || *start == '\\') *write++ = '\\';
             *write++ = *start;
         }
     }
     formatStream.Unsafer.AddLength(length);
 }
 /// <summary>
 ///     格式化ajax字符串
 /// </summary>
 /// <param name="jsStream">js字符流</param>
 /// <param name="formatStream">格式化JSON字符流</param>
 private static unsafe void formatQuote(TmphCharStream jsStream, TmphUnmanagedStream formatStream)
 {
     var length = jsStream.Length;
     char* start = jsStream.Char, end = start + length;
     formatStream.PrepLength(length <<= 1);
     for (var write = (char*)(formatStream.CurrentData); start != end; ++start)
         *write++ = *start == Quote ? '"' : *start;
     formatStream.Unsafer.AddLength(length);
 }
 /// <summary>
 ///     获取解压数据
 /// </summary>
 /// <returns>解压数据</returns>
 public unsafe TmphSubArray<byte> Get(TmphMemoryPool memoryPool)
 {
     if (memoryPool == null)
     {
         var data = TmphUnmanagedPool.StreamBuffers.Get();
         try
         {
             using (dataStream = new TmphUnmanagedStream(data.Byte, TmphUnmanagedPool.StreamBuffers.Size))
             {
                 get();
                 return new TmphSubArray<byte>(dataStream.GetArray());
             }
         }
         finally
         {
             TmphUnmanagedPool.StreamBuffers.Push(ref data);
         }
     }
     else
     {
         var data = memoryPool.Get();
         try
         {
             fixed (byte* dataFixed = data)
             {
                 using (dataStream = new TmphUnmanagedStream(dataFixed, data.Length))
                 {
                     get();
                     if (dataStream.Data == dataFixed)
                     {
                         var TmphBuffer = data;
                         data = null;
                         return TmphSubArray<byte>.Unsafe(TmphBuffer, 0, dataStream.Length);
                     }
                     return new TmphSubArray<byte>(dataStream.GetArray());
                 }
             }
         }
         finally
         {
             memoryPool.Push(ref data);
         }
     }
 }