Untitled
unknown
plain_text
3 years ago
4.1 kB
8
Indexable
#region -> mg_63760_tryb kompresji LZW
public static void mg_63760_TrybKompresjiLZW(string mg_6376_source, ref List<string> mg_63760_dictionary, ref List<string> mg_63760_resultCode, int mg_63760_mode)
{
if (mg_63760_mode == 1)
{
mg_63760_ZainicjowanieSlownika(mg_6376_source, ref mg_63760_dictionary);
}
else if (mg_63760_mode == 2)
{
if (mg_63760_dictionary.Count < 2)
{
Console.WriteLine("Wydaje się, że albo słownik jest za krótki, albo w ogóle go nie zdefiniowano!");
return;
}
}
mg_63760_KompresjaLZW(mg_6376_source, mg_63760_dictionary, ref mg_63760_resultCode);
}
#endregion
#region -> mg_63760_Zainicjowanie Slownika
private static void mg_63760_ZainicjowanieSlownika(string mg_63760_source, ref List<string> mg_63760_dictionary)
{
string mg_63760_pozostaly = mg_63760_source;
string mg_63760_roboczy = "";
string mg_63760_znak = "";
do
{
mg_63760_roboczy = mg_63760_pozostaly;
mg_63760_znak = mg_63760_roboczy.Substring(0, 1);
if (!mg_63760_dictionary.Contains(mg_63760_znak))
{
mg_63760_dictionary.Add(mg_63760_znak);
}
mg_63760_pozostaly = mg_63760_roboczy.Remove(0, 1);
}
while (mg_63760_pozostaly.Length > 0);
}
#endregion
#region -> mg_63760_Kompresja LZW
private static void mg_63760_KompresjaLZW(string mg_63760_source, List<string> mg_63760_dictionary, ref List<string> mg_63760_resultCode)
{
string mg_63760_pozostaly = mg_63760_source;
string mg_63760_roboczy = "";
string mg_63760_znak = "";
int mg_63760_sequenceLength = 1;
int mg_63760_indexNb = 0;
do
{
mg_63760_roboczy = mg_63760_pozostaly;
if (mg_63760_sequenceLength <= mg_63760_roboczy.Length)
{
mg_63760_znak = mg_63760_roboczy.Substring(0, mg_63760_sequenceLength);
if (mg_63760_dictionary.Contains(mg_63760_znak))
{
mg_63760_sequenceLength++;
}
else
{
mg_63760_indexNb = mg_63760_dictionary.IndexOf(mg_63760_roboczy.Substring(0, mg_63760_sequenceLength - 1)) + 1;
mg_63760_resultCode.Add(mg_63760_indexNb.ToString());
mg_63760_dictionary.Add(mg_63760_znak);
mg_63760_pozostaly = mg_63760_roboczy.Remove(0, mg_63760_sequenceLength - 1);
mg_63760_sequenceLength = 1;
}
}
else
{
mg_63760_znak = mg_63760_roboczy.Substring(0, 1);
if (mg_63760_dictionary.Contains(mg_63760_znak))
{
mg_63760_indexNb = mg_63760_dictionary.IndexOf(mg_63760_znak) + 1;
mg_63760_resultCode.Add(mg_63760_indexNb.ToString());
mg_63760_pozostaly = mg_63760_roboczy.Remove(0, 1);
}
else
{
mg_63760_dictionary.Add(mg_63760_znak);
mg_63760_indexNb = mg_63760_dictionary.IndexOf(mg_63760_roboczy.Substring(0, mg_63760_sequenceLength - 1)) + 1;
mg_63760_resultCode.Add(mg_63760_indexNb.ToString());
mg_63760_pozostaly = mg_63760_roboczy.Remove(0, 1);
}
}
}
while (mg_63760_pozostaly.Length > 0);
}
#endregionEditor is loading...