private static void DecompressWordStep(DecompressionDto decompressionDto, CommonTranslatorDto step) { if (step.Status == 1) { decompressionDto.DecompressedWord += step.NewChar; } else { decompressionDto.DecompressedWord += decompressionDto.DecompressedWord .Substring(decompressionDto.DecompressedWord.Length - step.Offset - 1, step.Length); } }
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); }
public static void PerformDecompression(CompressionDto compressionDto, bool writeOutputToFile) { DecompressionDto decompressionDto = new DecompressionDto(); foreach (var step in compressionDto.compressionSteps) { if (!IsDecompressedWordEmpty(decompressionDto)) { DecompressWordStep(decompressionDto, step); } else { decompressionDto.DecompressedWord += compressionDto.FirstLetter; } if (writeOutputToFile) { FileAssistant.WriteFile(Program.WRITE_FILE_NAME, decompressionDto.DecompressedWord); } View.PrintDecompressionStage(decompressionDto); } }
internal static void PrintDecompressionStage(DecompressionDto decompressionDto) { Console.WriteLine(decompressionDto.DecompressedWord); }
private static bool IsDecompressedWordEmpty(DecompressionDto decompressionDto) { return(decompressionDto.DecompressedWord.Equals(String.Empty)); }