Example #1
0
        /// <summary> 將文字寫入指定的<see cref="WzFileStream"/>中 </summary>
        public static void Write(WzFileStream stream, string str)
        {
            int  len = str.Length;
            bool uni = false;

            foreach (char ch in str)
            {
                if ((int)ch > 0xFF)
                {
                    uni = true;
                    break;
                }
            }

            byte[] chars = (uni ? Encoding.Unicode : Encoding.ASCII).GetBytes(str);

            Process(chars, len, uni);

            if ((uni && len <= 127) || (!uni && len <= 128))
            {
                stream.Write1((sbyte)(uni ? len : -len));
            }
            else
            {
                stream.Write1u((byte)(uni ? 0x7F : 0x80));
                stream.Write4(len);
            }

            stream.Write(chars, true);
        }