コード例 #1
0
ファイル: CasBinary.cs プロジェクト: infobook/Tools4
        //--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//
        public MemoryStream TranslateFrom(MemoryStream aSrc)
        {
            pFormat = eBinaryFormat.Undefined;
            MemoryStream retStream = TranslateFromOneStep(aSrc);
            eBinaryFormat lastFormat = pFormat;
            while (pFormat != eBinaryFormat.Undefined)
            {
                lastFormat = pFormat;
                retStream = TranslateFromOneStep(retStream);
            }
            pFormat = lastFormat;

            return retStream;
        }
コード例 #2
0
ファイル: CasBinary.cs プロジェクト: infobook/Tools4
 public byte[] TranslateFromBase64(string aSrc)
 {
     string fmt = aSrc.Substring(0,3);
     if (fmt.Equals(_B64))
     {
         pFormat = eBinaryFormat.Base64;
         return Convert.FromBase64String(aSrc.Substring(3));
     }
     else
     {
         pFormat = eBinaryFormat.Undefined;
         return System.Text.Encoding.Default.GetBytes(aSrc);
     }
 }
コード例 #3
0
ファイル: CasBinary.cs プロジェクト: infobook/Tools4
        public MemoryStream TranslateTo(MemoryStream aSrc, eBinaryFormat aFormat)
        {
            MemoryStream retStream = aSrc;
            pFormat = aFormat;

            switch (aFormat)
            {
                case eBinaryFormat.Text:
                    retStream = new MemoryStream(System.Text.Encoding.Default.GetBytes(_TXT));
                    aSrc.WriteTo(retStream);
                    break;
                case eBinaryFormat.Rtf:
                    retStream = new MemoryStream(System.Text.Encoding.Default.GetBytes(_RTF));
                    aSrc.WriteTo(retStream);
                    break;
                case eBinaryFormat.Html:
                    retStream = new MemoryStream(System.Text.Encoding.Default.GetBytes(_HTM));
                    aSrc.WriteTo(retStream);
                    break;
                case eBinaryFormat.BZip2:
              retStream = new MemoryStream(casArchivator.Compress(aSrc));
                    //retStream = new MemoryStream(4096);
                    //retStream.Write(System.Text.Encoding.Default.GetBytes(_BZ2), 0, 3);
                    //MemoryStream destStream = new MemoryStream(4096);
                    //BZip2.Compress(aSrc, destStream, 4096);
                    //byte[] bt = destStream.ToArray();
                    //retStream.Write(bt, 0, bt.Length);
                    break;
                case eBinaryFormat.Base64:
                    retStream = new MemoryStream(System.Text.Encoding.Default.GetBytes(
                        _B64 + Convert.ToBase64String(aSrc.ToArray())));
                    break;
            }
            return retStream;
        }
コード例 #4
0
ファイル: CasBinary.cs プロジェクト: infobook/Tools4
 public CasBinary()
 {
     pFormat = eBinaryFormat.Undefined;
 }
コード例 #5
0
ファイル: CasBinary.cs プロジェクト: infobook/Tools4
        //public byte[] TranslateTo(byte[] aSrc, eFormat aFormat)
        //{
        //    pFormat = aFormat;
        //    return TranslateTo(aSrc);
        //}
        public byte[] TranslateTo(byte[] aSrc, eBinaryFormat aFormat)
        {
            if (aSrc == null || aSrc.Length == 0)
                return new Byte[0];

            MemoryStream retStream = TranslateTo(new MemoryStream(aSrc), aFormat);
            if (retStream != null)
                return retStream.ToArray();
            else
                return new Byte[0];
        }
コード例 #6
0
ファイル: CasBinary.cs プロジェクト: infobook/Tools4
 public string TranslateFromText(string aSrc)
 {
     string fmt = aSrc.Substring(0,3);
     if (fmt.Equals(_TXT))
     {
         pFormat = eBinaryFormat.Text;
         return aSrc.Substring(3);
     }
     else
     {
         pFormat = eBinaryFormat.Undefined;
         return aSrc;
     }
 }
コード例 #7
0
ファイル: CasBinary.cs プロジェクト: infobook/Tools4
 public string TranslateFromRTF(string aSrc)
 {
     string fmt = aSrc.Substring(0,3);
     if (fmt.Equals(_RTF))
     {
         pFormat = eBinaryFormat.Rtf;
         return aSrc.Substring(3);
     }
     else
     {
         pFormat = eBinaryFormat.Undefined;
         return aSrc;
     }
 }
コード例 #8
0
ファイル: CasBinary.cs プロジェクト: infobook/Tools4
        public MemoryStream TranslateFromOneStep(MemoryStream aSrc)
        {
            MemoryStream retStream = aSrc;

            byte[] bt = new Byte[3];
            aSrc.Position = 0;
            aSrc.Read(bt,0,3);
              string fmt = System.Text.Encoding.Default.GetString(bt);
            switch (fmt)
            {
                case _TXT:
                    pFormat = eBinaryFormat.Text;
                    retStream = new MemoryStream(aSrc.ToArray(), 3, (int)aSrc.Length-3, false);
                    break;
                case _RTF:
                    pFormat = eBinaryFormat.Rtf;
                    retStream = new MemoryStream(aSrc.ToArray(), 3, (int)aSrc.Length-3, false);
                    break;
                case _HTM:
                    pFormat = eBinaryFormat.Html;
                    //retStream = new MemoryStream(aSrc.ToArray(), 3, (int)aSrc.Length-3, false);
                    aSrc.WriteTo(retStream);
                    break;
                case _BZ2:
                    pFormat = eBinaryFormat.BZip2;
              retStream = casArchivatorZip084.Decompress(aSrc);
              //aSrc = new MemoryStream(aSrc.ToArray(), 3, (int)aSrc.Length-3, false);
                    //retStream = new MemoryStream(4096);
                    //BZip2.Decompress(aSrc, retStream);
                    break;
                case "BZh":
                    pFormat = eBinaryFormat.BZip2;
              aSrc.Position = 0;
              retStream = casArchivatorZip084.Decompress(aSrc);
              //retStream = new MemoryStream(4096);
                    //aSrc.Position = 0;
                    //BZip2.Decompress(aSrc, retStream);
                    break;
                case _B64:
                    pFormat = eBinaryFormat.Base64;
                    retStream = new MemoryStream(Convert.FromBase64String(aSrc.ToString().Substring(3)));
                    break;
                default:
                    pFormat = eBinaryFormat.Undefined;
                    break;
            }

              if (pFormat == eBinaryFormat.Undefined)
              {
            if (bt[0] == 31 && bt[1] == 139)
            {
              pFormat = eBinaryFormat.GZip;
              retStream = casArchivator.Decompress(aSrc);
            }
              }
            return retStream;
        }
コード例 #9
0
ファイル: CasBinary.cs プロジェクト: infobook/Tools4
 public string TranslateFromHTML(string aSrc)
 {
     string fmt = aSrc.Substring(0,3);
     if (fmt.Equals(_HTM))
     {
         pFormat = eBinaryFormat.Html;
         return aSrc.Substring(3);
     }
     else
     {
         pFormat = eBinaryFormat.Undefined;
         return aSrc;
     }
 }