আমি নেট মধ্যে নবাগত। আমি সি # তে সংক্ষেপণ এবং ডিকম্প্রেশন স্ট্রিং করছি। এখানে একটি এক্সএমএল আছে এবং আমি স্ট্রিংয়ে রূপান্তর করছি এবং এর পরে আমি সংক্ষেপণ এবং ডিকম্প্রেশন করছি T আমার কোডটিতে কোনও সংকলন ত্রুটি নেই যখন আমি আমার কোডটি সংক্ষেপণ করি এবং আমার স্ট্রিংটি ফিরিয়ে দিই, এটি এক্সএমএলের ফিরে আসা মাত্র অর্ধেক।
নীচে আমার কোডটি রয়েছে, দয়া করে যেখানে আমি ভুল তা সংশোধন করুন।
কোড:
class Program
{
public static string Zip(string value)
{
//Transform string into byte[]
byte[] byteArray = new byte[value.Length];
int indexBA = 0;
foreach (char item in value.ToCharArray())
{
byteArray[indexBA++] = (byte)item;
}
//Prepare for compress
System.IO.MemoryStream ms = new System.IO.MemoryStream();
System.IO.Compression.GZipStream sw = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Compress);
//Compress
sw.Write(byteArray, 0, byteArray.Length);
//Close, DO NOT FLUSH cause bytes will go missing...
sw.Close();
//Transform byte[] zip data to string
byteArray = ms.ToArray();
System.Text.StringBuilder sB = new System.Text.StringBuilder(byteArray.Length);
foreach (byte item in byteArray)
{
sB.Append((char)item);
}
ms.Close();
sw.Dispose();
ms.Dispose();
return sB.ToString();
}
public static string UnZip(string value)
{
//Transform string into byte[]
byte[] byteArray = new byte[value.Length];
int indexBA = 0;
foreach (char item in value.ToCharArray())
{
byteArray[indexBA++] = (byte)item;
}
//Prepare for decompress
System.IO.MemoryStream ms = new System.IO.MemoryStream(byteArray);
System.IO.Compression.GZipStream sr = new System.IO.Compression.GZipStream(ms,
System.IO.Compression.CompressionMode.Decompress);
//Reset variable to collect uncompressed result
byteArray = new byte[byteArray.Length];
//Decompress
int rByte = sr.Read(byteArray, 0, byteArray.Length);
//Transform byte[] unzip data to string
System.Text.StringBuilder sB = new System.Text.StringBuilder(rByte);
//Read the number of bytes GZipStream red and do not a for each bytes in
//resultByteArray;
for (int i = 0; i < rByte; i++)
{
sB.Append((char)byteArray[i]);
}
sr.Close();
ms.Close();
sr.Dispose();
ms.Dispose();
return sB.ToString();
}
static void Main(string[] args)
{
XDocument doc = XDocument.Load(@"D:\RSP.xml");
string val = doc.ToString(SaveOptions.DisableFormatting);
val = Zip(val);
val = UnZip(val);
}
}
আমার এক্সএমএল আকারটি 63 কেবি।
Encoding
চারপাশে ভুল উপায় ব্যবহার করা হবে। Xanatos এর উত্তর অনুসারে আপনার এখানে বেস-64৪ প্রয়োজন
using
।