none
Problema ao descompactar uma string "gigante" com gzip. RRS feed

  • Pergunta

  • Olá Pessoal,

    Estou enfrentando um grande problema, tenho que descompactar uma string GIGANTE, porém não consigo dividi-lá para descompactar, e quando eu tento descompactá-la total, ela só descompacta um pedaço.

    Link para a string compactada, coloquei em um arquivo txt, uma vez que não é possível disponibiliza-lá aqui, por conta do limite de caracteres:

    String Compactada

    Abaixo os métodos que utilizo para descompactar.

            public static string DecompressString()
            {
                string compressedText = File.ReadAllText(@"D:\Compactado.txt");
                byte[] gZipBuffer = ConvertHexStringToByteArray(compressedText);
                using (var memoryStream = new MemoryStream())
                {
                    int dataLength = BitConverter.ToInt32(gZipBuffer, 0);
                    memoryStream.Write(gZipBuffer, 0, gZipBuffer.Length);
    
                    var buffer = new byte[dataLength];
    
                    memoryStream.Position = 0;
                    using (var gZipStream = new GZipStream(memoryStream, CompressionMode.Decompress))
                    {
                        gZipStream.Read(buffer, 0, buffer.Length);
                    }
                    MemoryStream stream = new MemoryStream(buffer);
    
                    FileStream file = new FileStream(@"D:\Descompactado.txt", FileMode.Create, FileAccess.Write);
                    stream.WriteTo(file);
                    file.Close();
                    stream.Close();
    
                    return Encoding.UTF8.GetString(buffer);
                }
            }
    
            public static byte[] ConvertHexStringToByteArray(string hexString)
            {
                if (hexString.Length % 2 != 0)
                {
                    throw new ArgumentException(String.Format(CultureInfo.InvariantCulture, "Não pode possuir um número ímpar de dígitos: {0}", hexString));
                }
                byte[] hexAsBytes = new byte[hexString.Length / 2];
                for (int index = 0; index < hexAsBytes.Length; index++)
                {
                    string byteValue = hexString.Substring(index * 2, 2);
                    hexAsBytes[index] = byte.Parse(byteValue, NumberStyles.HexNumber, CultureInfo.InvariantCulture);
                }
                return hexAsBytes;
            }



    quinta-feira, 19 de outubro de 2017 13:14

Respostas

  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 30 de outubro de 2017 15:33
    Moderador

Todas as Respostas

  • Boa tarde, Yannick Freitas.

    Obrigado por usar o fórum MSDN.

    Essa seria uma questão de "How to/Customização" ou "Break Fix/Erro"?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 19 de outubro de 2017 20:16
    Moderador
  • Olá Felipe, Seria ambos rsrs.
    quinta-feira, 19 de outubro de 2017 20:20
  • Está acusando alguma mensagem de erro, ou algo do gênero?

    Atenciosamente,


    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 20 de outubro de 2017 18:52
    Moderador
  • Boa tarde,

    Se não houver retorno, essa thread será encerrada.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 23 de outubro de 2017 17:33
    Moderador
  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 30 de outubro de 2017 15:33
    Moderador