コード例 #1
0
ファイル: Main.cs プロジェクト: calvarado194/layton-rando
        public static void Decompress(string input, string output, FormatCompress format)
        {
            byte[] inData;
            using (FileStream inStream = File.OpenRead(input))
            {
                inData = new byte[inStream.Length];
                inStream.Read(inData, 0, inData.Length);
            }

            MemoryStream decompressedData = new MemoryStream();
            long         decSize          = -1;

            // just try all formats, and stop once one has been found that can decompress it.
            using (MemoryStream inStream = new MemoryStream(inData))
            {
                decSize = Decompress(inStream, decompressedData, format);
            }
            if (decSize < 0)
            {
                Console.WriteLine(String.Format(Main.Get_Traduction("S1B"), input));
                return;
            }

            byte[] outData = decompressedData.ToArray();
            using (FileStream outStream = File.Create(output))
            {
                outStream.Write(outData, 0, outData.Length);
                Console.WriteLine(String.Format(Main.Get_Traduction("S1C"), format.ToString(), input, output));
            }
        }
コード例 #2
0
ファイル: Main.cs プロジェクト: calvarado194/layton-rando
        private static long Decompress(MemoryStream inputStream, MemoryStream output, FormatCompress format)
        {
            CompressionFormat realFormat = null;

            switch (format)
            {
            case FormatCompress.HUFF:
                realFormat = new Huffman(); break;

            case FormatCompress.LZ10:
                realFormat = new LZ10(); break;

            case FormatCompress.LZ11:
                realFormat = new LZ11(); break;

            case FormatCompress.LZOVL:
                realFormat = new LZOvl(); break;

            case FormatCompress.RLE:
                realFormat = new RLE(); break;

            default:
                return(-1);
            }
            if (!realFormat.Supports(inputStream, inputStream.Length))
            {
                return(-1);
            }
            try
            {
                return(realFormat.Decompress(inputStream, inputStream.Length, output));
            }
            catch (TooMuchInputException e)
            {
                Console.WriteLine(e.Message);
                return(output.Length);
            }
            catch (Exception e)
            {
                Console.WriteLine(String.Format(Main.Get_Traduction("S1D"), format.ToString(), e.Message));
                return(-1);
            }
        }
コード例 #3
0
ファイル: Main.cs プロジェクト: MetLob/tinke
        public static void Decompress(string input, string output, FormatCompress format)
        {
            byte[] inData;
            using (FileStream inStream = File.OpenRead(input))
            {
                inData = new byte[inStream.Length];
                inStream.Read(inData, 0, inData.Length);
            }

            MemoryStream decompressedData = new MemoryStream();
            long decSize = -1;
            // just try all formats, and stop once one has been found that can decompress it.
            using (MemoryStream inStream = new MemoryStream(inData))
            {
                decSize = Decompress(inStream, decompressedData, format);
            }
            if (decSize < 0)
            {
                Console.WriteLine(String.Format(Main.Get_Traduction("S1B"), input));
                return;
            }

            byte[] outData = decompressedData.ToArray();
            using (FileStream outStream = File.Create(output))
            {
                outStream.Write(outData, 0, outData.Length);
                Console.WriteLine(String.Format(Main.Get_Traduction("S1C"), format.ToString(), input, output));
            }
        }
コード例 #4
0
ファイル: Main.cs プロジェクト: MetLob/tinke
 private static long Decompress(MemoryStream inputStream, MemoryStream output, FormatCompress format)
 {
     CompressionFormat realFormat = null;
     switch (format)
     {
         case FormatCompress.HUFF:
             realFormat = new Huffman(); break;
         case FormatCompress.LZ10:
             realFormat = new LZ10(); break;
         case FormatCompress.LZ11:
             realFormat = new LZ11(); break;
         case FormatCompress.LZOVL:
             realFormat = new LZOvl(); break;
         case FormatCompress.RLE:
             realFormat = new RLE(); break;
         default:
             return -1;
     }
     if (!realFormat.Supports(inputStream, inputStream.Length))
         return -1;
     try
     {
         return realFormat.Decompress(inputStream, inputStream.Length, output);
     }
     catch (TooMuchInputException e)
     {
         Console.WriteLine(e.Message);
         return output.Length;
     }
     catch (Exception e)
     {
         Console.WriteLine(String.Format(Main.Get_Traduction("S1D"), format.ToString(), e.Message));
         return -1;
     }
 }