KOD cpp: UKRYJ
String^ Compress2(String^ data)
{
System::IO::Stream^ str = gcnew MemoryStream();
System::IO::Compression::GZipStream^ out_stream = gcnew GZipStream(str, CompressionMode::Compress);
StreamWriter^ sw = gcnew StreamWriter(out_stream);
sw->Write(data);
sw->Flush();
str->Position = 0;
System::IO::StreamReader^ sr = gcnew StreamReader(str);
return sr->ReadToEnd();
};
{
System::IO::Stream^ str = gcnew MemoryStream();
System::IO::Compression::GZipStream^ out_stream = gcnew GZipStream(str, CompressionMode::Compress);
StreamWriter^ sw = gcnew StreamWriter(out_stream);
sw->Write(data);
sw->Flush();
str->Position = 0;
System::IO::StreamReader^ sr = gcnew StreamReader(str);
return sr->ReadToEnd();
};
Jak już widać, chcę pokazać skompresowane dane w formie tekstowej (String^). Tu pojawił się, znany mi już wcześniej błąd (pisałem o nim w inny temacie) z pokazaniem tylko dwóch pierwszych znaków.
Pytanie brzmi - jak lub do jakiej formy należy przekonwertować dane z Strumienia po kompresji by mogły być poprawnie umieszczone w zmiennej typu String (managed) i wyświetlone.
Funkcja może dziwić, ale tak, pracuje na danych typu String i chcę by również zwracała String, tylko że skompresowany (do kompresji plików mam osobną, z nią nie było problemów). A po co mi kompresja Stringów taką metodą ? To już zupełnie inna bajka... ; )
---------
Chwila ! Moment. Przecież to Gzip, Konwersja plikowa, więc zawiera nagłówek. No przecież, że też o tym pomyślałem, 15 sekund po dodaniu tematu ; p Zaraz wytnę nagłówek i powinno działać.
---
Ok, wszystko działa, znowu niepotrzebny temat :/




TRichEdit & Memo 


