что-то я совсем туплю после программирования гуи ...
есть вот такой код
Function PackStream:TStream(in_st:TStream)
in_st.Seek(0)
Local bank:TBank = New TBank
Local out_st:TStream = OpenStream(bank)
Local size% = in_st.Size()
Local size_dest% = size
Local in:Byte[size]
Local out:Byte[size]
in_st.ReadBytes(in,size)
compress(out,size_dest,in,size)
out_st.WriteInt(size_dest)
out_st.WriteInt(size)
out_st.WriteBytes(out,size_dest)
Return out_st
End Function
Function UnPackStream:TStream(in_st:TStream)
in_st.Seek(0)
Local bank:TBank = New TBank
Local out_st:TStream = OpenStream(bank)
Local size_dest% = in_st.ReadInt()
Local size% = in_st.ReadInt()
Local in:Byte[size]
Local out:Byte[size]
in_st.ReadBytes(in,size_dest)
uncompress(out,size,in,size_dest)
out_st.WriteBytes(out,size)
Return out_st
End Function
тест, где туда суется поток размером 17-32 кб с символами 0-255, он не проходит ... тестировал просто .. сжимал и сразу разжимал поток .. и сравнивал с оригиналом ... где то за 14 байт до конца было различие
до етого кода была попытка с разделением на блоки по 16 кб, но толку тоже мало было .... на 16374 байте из 16 кб падало тоже
кто скажет где мои мозги тупят ?
или дайте рабочий код