Exemplo n.º 1
0
        private static void CompressWord(CompressionDto ret, ref int bufferOffset)
        {
            var tempBuffer = ret.Buffer;

            if (!IsLetterInDictionary(ret))
            {
                ret.compressionSteps.Add(new CommonTranslatorDto {
                    Status = 1, NewChar = tempBuffer[0]
                });
                ret.CompressedDictionary += tempBuffer[0];
                ret.CompressedDictionary  = ret.CompressedDictionary.Remove(default(int), 1);
                bufferOffset++;
            }
            else
            {
                while (!ret.CompressedDictionary.Contains(tempBuffer))
                {
                    tempBuffer = tempBuffer.Remove(tempBuffer.Length - 1);
                }

                int offset = ret.CompressedDictionary.Length - ret.CompressedDictionary.LastIndexOf(tempBuffer) - 1;
                ret.CompressedDictionary += tempBuffer;
                ret.CompressedDictionary  = ret.CompressedDictionary.Remove(default(int), tempBuffer.Length);
                ret.compressionSteps.Add(new CommonTranslatorDto {
                    Status = 0, Length = tempBuffer.Length, Offset = offset
                });
                bufferOffset += tempBuffer.Length;
            }
        }
Exemplo n.º 2
0
        public static void PerformCompression(CompressionDto compressionDto, int bufferOffset)
        {
            while (!IsCompressed(compressionDto, bufferOffset))
            {
                compressionDto.Buffer = SetBuffer(bufferOffset);

                CompressWord(compressionDto, ref bufferOffset);
                View.PrintStage(compressionDto);
            }
        }
Exemplo n.º 3
0
Arquivo: View.cs Projeto: P3piK/Aads
        public static string PrintTranslator(CompressionDto compressionDao)
        {
            if (compressionDao.compressionSteps.LastOrDefault().Status == 0)
            {
                return(String.Format("{0}, {1}, {2}",
                                     compressionDao.compressionSteps.LastOrDefault().Status,
                                     compressionDao.compressionSteps.LastOrDefault().Offset,
                                     compressionDao.compressionSteps.LastOrDefault().Length));
            }

            return(String.Format("{0}, {1}",
                                 compressionDao.compressionSteps.LastOrDefault().Status,
                                 compressionDao.compressionSteps.LastOrDefault().NewChar));
        }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            if (READ_WRITE_TO_FILE)
            {
                WORD_TO_COMPRESS = FileAssistant.ReadFile(READ_FILE_NAME);
            }

            var compressionDto   = new CompressionDto();
            var decompressionDto = new DecompressionDto();
            int bufferOffset     = 0;

            View.PrintStartCompressionMessage();
            CompressionController.PerformCompression(compressionDto, bufferOffset);

            View.PrintStartDecompressionMessage();
            DecompressionController.PerformDecompression(compressionDto, READ_WRITE_TO_FILE);
        }
Exemplo n.º 5
0
Arquivo: View.cs Projeto: P3piK/Aads
 public static void PrintStage(CompressionDto compressionDao)
 {
     Console.WriteLine(compressionDao.CompressedDictionary + "\t" + compressionDao.Buffer + "\t" + PrintTranslator(compressionDao));
 }
Exemplo n.º 6
0
 private static bool IsLetterInDictionary(CompressionDto ret)
 {
     return(ret.CompressedDictionary.Contains(ret.Buffer[0].ToString()));
 }
Exemplo n.º 7
0
 private static bool IsCompressed(CompressionDto ret, int bufferOffset)
 {
     return(bufferOffset >= Program.WORD_TO_COMPRESS.Length ? true : false);
 }