Skip to content

Commit a5d9e23

Browse files
committed
Add ExtendedCoding buton
1 parent af75d18 commit a5d9e23

File tree

2 files changed

+33
-7
lines changed

2 files changed

+33
-7
lines changed

AlgorithmsWpf/MainWindow.xaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,12 @@
146146
<TextBlock Text="из файла" HorizontalAlignment="Center" />
147147
</StackPanel>
148148
</Button>
149+
<Button Name="BEncodeExtended" Margin="3" Click="ExtendedEncodeClicButton" Grid.Column="4">
150+
<StackPanel>
151+
<TextBlock Text="Подробное" HorizontalAlignment="Center" />
152+
<TextBlock Text="кодирование" HorizontalAlignment="Center" />
153+
</StackPanel>
154+
</Button>
149155
<!--<Button Name="BDecodeFromFile" Margin="3" Click="DecodeFromFileClicButton" Grid.Column="4">
150156
<StackPanel>
151157
<TextBlock Text="Декодировать" HorizontalAlignment="Center" />
@@ -238,6 +244,12 @@
238244
<TextBlock Text="из файла" HorizontalAlignment="Center" />
239245
</StackPanel>
240246
</Button>
247+
<Button Name="B1EncodeExtended" Margin="3" Click="ExtendedEncodeClicButton" Grid.Column="4">
248+
<StackPanel>
249+
<TextBlock Text="Подробное" HorizontalAlignment="Center" />
250+
<TextBlock Text="кодирование" HorizontalAlignment="Center" />
251+
</StackPanel>
252+
</Button>
241253
<!--<Button Name="B1DecodeFromFile" Margin="3" Click="DecodeFromFileClicButton" Grid.Column="4">
242254
<StackPanel>
243255
<TextBlock Text="Декодировать" HorizontalAlignment="Center" />
@@ -320,6 +332,12 @@
320332
<TextBlock Text="из файла" HorizontalAlignment="Center" />
321333
</StackPanel>
322334
</Button>
335+
<Button Name="B2EncodeExtended" Margin="3" Click="ExtendedEncodeClicButton" Grid.Column="4">
336+
<StackPanel>
337+
<TextBlock Text="Подробное" HorizontalAlignment="Center" />
338+
<TextBlock Text="кодирование" HorizontalAlignment="Center" />
339+
</StackPanel>
340+
</Button>
323341
<!--<Button Name="B2DecodeFromFile" Margin="3" Click="DecodeFromFileClicButton" Grid.Column="4">
324342
<StackPanel>
325343
<TextBlock Text="Декодировать" HorizontalAlignment="Center" />

AlgorithmsWpf/MainWindow.xaml.cs

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public partial class MainWindow : Window
1818
"Словарный метод сжатия LZ77", "Код Хемминга", "Линейный код тима (5,2)", "Словарный метод сжатия LZ78"};
1919
int IndexOfCurrentAlgorithm = 0;
2020
List<Border> Borders = new List<Border>();
21+
bool ExtendedAlgm = false;
2122
public MainWindow()
2223
{
2324
InitializeComponent();
@@ -106,6 +107,13 @@ private void LinearCodesType52ClicButton(object sender, RoutedEventArgs e)
106107
//_Border.Visibility = Visibility.Visible;
107108
}
108109

110+
private void ExtendedEncodeClicButton(object sender, RoutedEventArgs e)
111+
{
112+
ExtendedAlgm = true;
113+
EncodeClicButton(sender, e);
114+
ExtendedAlgm = false;
115+
}
116+
109117
private void EncodeClicButton(object sender, RoutedEventArgs e)
110118
{
111119
string str = "";
@@ -116,7 +124,7 @@ private void EncodeClicButton(object sender, RoutedEventArgs e)
116124
TextAfterDecoding.Text = string.Empty;
117125
if (TextForEncoding.Text.Length == 0) { NoTextForEncoding = true; break; }
118126

119-
var Huf = HuffmanAlgm.Encode(TextForEncoding.Text);
127+
var Huf = HuffmanAlgm.Encode(TextForEncoding.Text, ExtendedAlgm);
120128
EncodedText.Text = Huf.ToString();
121129
foreach (var i in Huf.GetData())
122130
str += i.Key.ToString() + " " + i.Value.ToString() + '\n';
@@ -127,7 +135,7 @@ private void EncodeClicButton(object sender, RoutedEventArgs e)
127135
TextAfterDecoding.Text = string.Empty;
128136
if (TextForEncoding.Text.Length == 0) { NoTextForEncoding = true; break; }
129137

130-
var Sha = ShannonFanoAlgm.Encode(TextForEncoding.Text);
138+
var Sha = ShannonFanoAlgm.Encode(TextForEncoding.Text, ExtendedAlgm);
131139
EncodedText.Text = Sha.ToString();
132140
foreach (var i in Sha.GetData())
133141
str += i.Key.ToString() + " " + i.Value.ToString() + '\n';
@@ -138,7 +146,7 @@ private void EncodeClicButton(object sender, RoutedEventArgs e)
138146
TextAfterDecoding.Text = string.Empty;
139147
if (TextForEncoding.Text.Length == 0) { NoTextForEncoding = true; break; }
140148

141-
var Ari = ArithmeticCodingAlgm.Encode(TextForEncoding.Text);
149+
var Ari = ArithmeticCodingAlgm.Encode(TextForEncoding.Text, ExtendedAlgm);
142150
EncodedText.Text = Ari.ToString();
143151
foreach (var i in Ari.GetData().GetData())
144152
str += i.Key.ToString() + " " + i.Value.ToString() + '\n';
@@ -149,23 +157,23 @@ private void EncodeClicButton(object sender, RoutedEventArgs e)
149157
Text1AfterDecoding.Text = string.Empty;
150158
if (Text1ForEncoding.Text.Length == 0) { NoTextForEncoding = true; break; }
151159

152-
var Rle = RLEAlgm.Encode(Text1ForEncoding.Text);
160+
var Rle = RLEAlgm.Encode(Text1ForEncoding.Text, ExtendedAlgm);
153161
Encoded1Text.Text = Rle.ToString();
154162
CompressionRatio1.Text = Rle.GetCompressionRatio().ToString();
155163
break;
156164
case 4:
157165
Text1AfterDecoding.Text = string.Empty;
158166
if (Text1ForEncoding.Text.Length == 0) { NoTextForEncoding = true; break; }
159167

160-
var Lz = LZ77Algm.Encode(Text1ForEncoding.Text);
168+
var Lz = LZ77Algm.Encode(Text1ForEncoding.Text, ExtendedAlgm);
161169
Encoded1Text.Text = Lz.ToString();
162170
CompressionRatio1.Text = Lz.GetCompressionRatio().ToString();
163171
break;
164172
case 5:
165173
Text2AfterDecoding.Text = string.Empty;
166174
if (Text2ForEncoding.Text.Length == 0) { NoTextForEncoding = true; break; }
167175

168-
var Ham = HammingAlgm.Encode(Text2ForEncoding.Text);
176+
var Ham = HammingAlgm.Encode(Text2ForEncoding.Text, ExtendedAlgm);
169177
Encoded2Text.Text = Ham.ToString();
170178
break;
171179
case 6:
@@ -174,7 +182,7 @@ private void EncodeClicButton(object sender, RoutedEventArgs e)
174182
Text1AfterDecoding.Text = string.Empty;
175183
if (Text1ForEncoding.Text.Length == 0) { NoTextForEncoding = true; break; }
176184

177-
var Lz78 = LZ78Algm.Encode(Text1ForEncoding.Text);
185+
var Lz78 = LZ78Algm.Encode(Text1ForEncoding.Text, ExtendedAlgm);
178186
Encoded1Text.Text = Lz78.ToString();
179187
CompressionRatio1.Text = Lz78.GetCompressionRatio().ToString();
180188
break;

0 commit comments

Comments
 (0)