Skip to content

Commit f56e86e

Browse files
committed
icon + a little bit wpf
1 parent f1c72bf commit f56e86e

8 files changed

Lines changed: 32 additions & 43 deletions

File tree

AlgorithmsLibrary/AlgorithmsLibrary.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
<ItemGroup>
3939
<Reference Include="System" />
4040
<Reference Include="System.Core" />
41+
<Reference Include="System.Numerics" />
4142
<Reference Include="System.Xml.Linq" />
4243
<Reference Include="System.Data.DataSetExtensions" />
4344
<Reference Include="Microsoft.CSharp" />
@@ -70,6 +71,7 @@
7071
<Compile Include="Testing.cs" />
7172
</ItemGroup>
7273
<ItemGroup>
74+
<None Include="packages.config" />
7375
<None Include="README.md" />
7476
<None Include="Documentation\Lab.pdf" />
7577
</ItemGroup>

AlgorithmsLibrary/ArithmeticCodingAlgm/ArithmeticCodingAlgm.cs

Lines changed: 8 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ public static IAlgmEncoded<string, IAlgmEncoded<int, Dictionary<char, int>>> Enc
4848
{
4949
List<Symbol> codes = GetSymbolsRanges(source);
5050
decimal HighRange = 1, LowRange = 0, h, l;
51-
52-
//List<char> TheImmutablePart = new List<char>();
51+
5352
StringBuilder TheImmutablePart = new StringBuilder();
5453

5554
foreach (char c in source)
@@ -87,8 +86,6 @@ public static IAlgmEncoded<string, IAlgmEncoded<int, Dictionary<char, int>>> Enc
8786
}
8887
answer.Clear();
8988
answer.Append(TheImmutablePart);
90-
//foreach (char c in TheImmutablePart)
91-
// answer += c;
9289
for (int i = 0; i < k; i++)
9390
answer.Append(number[i].ToString());
9491
}
@@ -101,23 +98,17 @@ private static void DiscardTheImmutablePart(ref StringBuilder theImmutablePart,
10198
{
10299
string lr = lowRange.ToString();
103100
string hr = highRange.ToString();
104-
int i=0, cnt =0;
101+
int i=0;
105102
while (i<lr.Length && i<hr.Length && lr[i]==hr[i])
106103
{
107104
if (!((i == 0 && lr[i] == '0') || lr[i] == ','))
108105
{
109106
theImmutablePart.Append(lr[i]);
110107
highRange *= 10; highRange -= (int)highRange % 10;
111108
lowRange *= 10; lowRange -= (int)lowRange % 10;
112-
//cnt++;
113109
}
114-
115110
i++;
116111
}
117-
//highRange *= (decimal)Math.Pow(10, cnt);
118-
//highRange -= (int)highRange;
119-
//lowRange *= (decimal)Math.Pow(10, cnt);
120-
//lowRange -= (int)lowRange;
121112
}
122113

123114
private static void DiscardTheImmutablePart(ref decimal highRange, ref decimal lowRange, ref decimal code, ref int index, string encoded,
@@ -134,34 +125,14 @@ private static void DiscardTheImmutablePart(ref decimal highRange, ref decimal l
134125
highRange *= 10; highRange -= (int)highRange % 10;
135126
lowRange *= 10; lowRange -= (int)lowRange % 10;
136127
code = Convert.ToDecimal("0," + (index<encodedLength?encoded.Substring(index, Math.Min(28, encodedLength - index)):"0" ));
137-
index++;
138-
//code *= 10; code -= (int)code % 10;
139-
//if (index<encodedLength)
140-
//{
141-
// if (encoded[index]=='0')
142-
// {
143-
// CntOfZero++; index++;
144-
// thePreviousDigitIsZero = true;
145-
// }
146-
// else
147-
// {
148-
149-
// if (thePreviousDigitIsZero)
150-
// {
151-
// code += (decimal)(int.Parse(encoded[index++].ToString()) / Math.Pow(10, c.Length - 2+CntOfZero));
152-
// }
153-
// else
154-
155-
// }
156-
//}
128+
index++;
157129
}
158130
i++;
159131
}
160132
}
161133

162134
private static string convertToString(int[] number, int index)
163135
{
164-
//if (index > 28) index = 28;
165136
string str = "0,";
166137
for (int i = 0; i < index; i++)
167138
str += number[i].ToString();
@@ -196,7 +167,11 @@ public static IAlgmEncoded<string> Decode(Dictionary<char, int> frequencies, str
196167
}
197168
private static double CalculateCompressionRatio(string sourceString, string compressionString)
198169
{
199-
return Math.Round((double)((sourceString.Length * 8) / Convert.ToString(compressionString.Length, 2).Length), 3);
170+
//byte[] BigIArray = System.Numerics.BigInteger.Parse(compressionString).ToByteArray();
171+
//string BinaryCode = string.Concat(BigIArray.Select(b => Convert.ToString(b, 2).PadLeft(8, '0')).Reverse());
172+
//var k = Math.Round(Convert.ToDouble(((decimal)sourceString.Length * 8 / (decimal)BinaryCode.ToString().TrimStart('0').Length).ToString()), 3);
173+
return 0;
174+
//return Math.Round((double)((sourceString.Length * 8) / Convert.ToString(compressionString.Length, 2).Length), 3);
200175
}
201176
}
202177
}

AlgorithmsLibrary/packages.config

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<packages>
3+
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net472" />
4+
</packages>

AlgorithmsWpf/AlgorithmsWpf.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@
3535
<ErrorReport>prompt</ErrorReport>
3636
<WarningLevel>4</WarningLevel>
3737
</PropertyGroup>
38+
<PropertyGroup>
39+
<ApplicationIcon>fire.ico</ApplicationIcon>
40+
</PropertyGroup>
3841
<ItemGroup>
3942
<Reference Include="System" />
4043
<Reference Include="System.Data" />
@@ -101,5 +104,8 @@
101104
<Name>AlgorithmsLibrary</Name>
102105
</ProjectReference>
103106
</ItemGroup>
107+
<ItemGroup>
108+
<Resource Include="fire.ico" />
109+
</ItemGroup>
104110
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
105111
</Project>

AlgorithmsWpf/MainWindow.xaml

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
66
xmlns:local="clr-namespace:AlgorithmsWpf"
77
mc:Ignorable="d"
8+
Icon="fire.ico"
89
Title="MainWindow" MinHeight="675" MinWidth="1200">
910
<Grid>
1011
<Grid.RowDefinitions>
@@ -151,16 +152,16 @@
151152
</Grid>
152153
<!--Блоки для отображения информации-->
153154
<TextBox Name="TextForEncoding" BorderBrush="{StaticResource ColorOfLines}"
154-
Grid.Column="1" Grid.Row="4" Grid.RowSpan="4"
155+
Grid.Column="1" Grid.Row="4" Grid.RowSpan="4" ScrollViewer.VerticalScrollBarVisibility="Auto"
155156
Background="{StaticResource ColorOfAccent}" TextWrapping="Wrap"/>
156157
<Border BorderBrush="{StaticResource ColorOfLines}" BorderThickness="1"
157158
Grid.Column="3" Grid.Row="4" Grid.RowSpan="4">
158-
<TextBox Name="TextAfterDecoding" TextWrapping="Wrap" FontSize="12"
159+
<TextBox Name="TextAfterDecoding" TextWrapping="Wrap" FontSize="12" ScrollViewer.VerticalScrollBarVisibility="Auto"
159160
Background="{StaticResource ColorOfAccent}" />
160161
</Border>
161162
<Border BorderBrush="{StaticResource ColorOfLines}" BorderThickness="1"
162163
Grid.Column="1" Grid.Row="10" Grid.ColumnSpan="3">
163-
<TextBox Name="EncodedText" TextWrapping="Wrap" FontSize="12"
164+
<TextBox Name="EncodedText" TextWrapping="Wrap" FontSize="12" ScrollViewer.VerticalScrollBarVisibility="Auto"
164165
Background="{StaticResource ColorOfAccent}" />
165166
</Border>
166167
<Border BorderBrush="{StaticResource ColorOfLines}" BorderThickness="1"
@@ -170,7 +171,7 @@
170171
</Border>
171172
<Border BorderBrush="{StaticResource ColorOfLines}" BorderThickness="1"
172173
Grid.Column="5" Grid.Row="7" Grid.RowSpan="4">
173-
<TextBox Name="FriqDictionary" KeyDown="EnterDown_Dictionary"
174+
<TextBox Name="FriqDictionary" KeyDown="EnterDown_Dictionary"
174175
Background="{StaticResource ColorOfAccent}" ScrollViewer.HorizontalScrollBarVisibility="Auto"/>
175176
</Border>
176177
<!--Подписи блоков-->
@@ -243,17 +244,17 @@
243244
</Grid>
244245
<!--Блоки для отображения информации-->
245246
<TextBox Name="Text1ForEncoding" BorderBrush="{StaticResource ColorOfLines}"
246-
Grid.Column="1" Grid.Row="4" Grid.RowSpan="4"
247+
Grid.Column="1" Grid.Row="4" Grid.RowSpan="4" ScrollViewer.VerticalScrollBarVisibility="Auto"
247248
Background="{StaticResource ColorOfAccent}" TextWrapping="Wrap"/>
248249
<Border BorderBrush="{StaticResource ColorOfLines}" BorderThickness="1"
249250
Grid.Column="3" Grid.Row="4" Grid.RowSpan="4">
250251
<TextBox Name="Text1AfterDecoding" TextWrapping="Wrap" FontSize="12"
251-
Background="{StaticResource ColorOfAccent}" />
252+
Background="{StaticResource ColorOfAccent}" ScrollViewer.VerticalScrollBarVisibility="Auto"/>
252253
</Border>
253254
<Border BorderBrush="{StaticResource ColorOfLines}" BorderThickness="1"
254255
Grid.Column="1" Grid.Row="10" Grid.ColumnSpan="3">
255256
<TextBox Name="Encoded1Text" TextWrapping="Wrap" FontSize="12"
256-
Background="{StaticResource ColorOfAccent}" />
257+
Background="{StaticResource ColorOfAccent}" ScrollViewer.VerticalScrollBarVisibility="Auto"/>
257258
</Border>
258259
<Border BorderBrush="{StaticResource ColorOfLines}" BorderThickness="1"
259260
Grid.Column="5" Grid.Row="4"
@@ -325,15 +326,15 @@
325326
</Grid>
326327
<!--Блоки для отображения информации-->
327328
<TextBox Name="Text2ForEncoding" BorderBrush="{StaticResource ColorOfLines}"
328-
Grid.Column="1" Grid.Row="4"
329+
Grid.Column="1" Grid.Row="4" ScrollViewer.VerticalScrollBarVisibility="Auto"
329330
Background="{StaticResource ColorOfAccent}" TextWrapping="Wrap"/>
330331
<TextBox Name="Text2AfterDecoding" TextWrapping="Wrap"
331-
Grid.Column="1" Grid.Row="10" BorderThickness="1"
332+
Grid.Column="1" Grid.Row="10" BorderThickness="1" ScrollViewer.VerticalScrollBarVisibility="Auto"
332333
Background="{StaticResource ColorOfAccent}" BorderBrush="{StaticResource ColorOfLines}"/>
333334
<Border BorderBrush="{StaticResource ColorOfLines}" BorderThickness="1"
334335
Grid.Column="1" Grid.Row="7" >
335336
<TextBox Name="Encoded2Text" TextWrapping="Wrap" FontSize="12"
336-
Background="{StaticResource ColorOfAccent}" />
337+
Background="{StaticResource ColorOfAccent}" ScrollViewer.VerticalScrollBarVisibility="Auto"/>
337338
</Border>
338339
<!--Подписи блоков-->
339340
<TextBlock Grid.Column="1" Grid.Row="3" Text="Исходная последовательность:" VerticalAlignment="Center"/>

AlgorithmsWpf/MainWindow.xaml.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,7 @@ private void EncodeFromFileClicButton(object sender, RoutedEventArgs e)
245245
if (new List<int>() { 0, 1, 2 }.Contains(IndexOfCurrentAlgorithm))
246246
{
247247
ClearHuf_Fano_Arith_Border();
248+
TextForEncoding.Text = "Загрузка текста";
248249
using (StreamReader sr = new StreamReader(filename))
249250
TextForEncoding.Text = sr.ReadToEnd();
250251
}

AlgorithmsWpf/fire-circle.ico

2.4 KB
Binary file not shown.

AlgorithmsWpf/fire.ico

9.44 KB
Binary file not shown.

0 commit comments

Comments
 (0)