Слишком большой вес программы
Цитата: Михаил от 14.08.2024, 17:17Всем доброго времени! Недавно решил сделать программу ради интереса и практики которая среди списка слов выбирает только нужные по маске, обязательным и запрещённым буквам. Я её сделал, она нормально работает, только вот сам исполняемый файл весит 68 мегабайт. В этой программе есть всего лишь тестовый файл со всеми русскими существительными, который весит меньше мегабайта и 40 строк кода
[spoiler title="Код"]public partial class Form1 : Form { private readonly List<string> allWords; public Form1() { InitializeComponent(); allWords = Properties.Resources.russian_nouns.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries).ToList(); } private void Button1_Click(object sender, EventArgs e) { string mask = MaskTextbox.Text.Trim(); string include = IncludeTextbox.Text.Trim(); string exclude = ExcludeTextbox.Text.Trim(); var filteredWords = FilterWords(mask, include, exclude); WordsLabel.Text = string.Join(" ", filteredWords.Take(30)); } private IEnumerable<string> FilterWords(string mask, string include, string exclude) { string pattern = "^" + Regex.Escape(mask).Replace(@"\*", ".") + "$"; foreach (string word in allWords) { if (Regex.IsMatch(word, pattern) && include.All(c => word.Contains(c)) && exclude.All(c => !word.Contains(c))) { yield return word; } } } }[/spoiler]
Программу я собирал и запускал этой кнопкой в режиме release. Программа зависит от dotnet framework'а, поэтому я не понимаю что там может столько весить и как это уменьшить
Всем доброго времени! Недавно решил сделать программу ради интереса и практики которая среди списка слов выбирает только нужные по маске, обязательным и запрещённым буквам. Я её сделал, она нормально работает, только вот сам исполняемый файл весит 68 мегабайт. В этой программе есть всего лишь тестовый файл со всеми русскими существительными, который весит меньше мегабайта и 40 строк кода
public partial class Form1 : Form
{
private readonly List<string> allWords;
public Form1()
{
InitializeComponent();
allWords = Properties.Resources.russian_nouns.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries).ToList();
}
private void Button1_Click(object sender, EventArgs e)
{
string mask = MaskTextbox.Text.Trim();
string include = IncludeTextbox.Text.Trim();
string exclude = ExcludeTextbox.Text.Trim();
var filteredWords = FilterWords(mask, include, exclude);
WordsLabel.Text = string.Join(" ", filteredWords.Take(30));
}
private IEnumerable<string> FilterWords(string mask, string include, string exclude)
{
string pattern = "^" + Regex.Escape(mask).Replace(@"\*", ".") + "$";
foreach (string word in allWords)
{
if (Regex.IsMatch(word, pattern) &&
include.All(c => word.Contains(c)) &&
exclude.All(c => !word.Contains(c)))
{
yield return word;
}
}
}
}
Программу я собирал и запускал этой кнопкой в режиме release. Программа зависит от dotnet framework'а, поэтому я не понимаю что там может столько весить и как это уменьшить
Цитата: Adler от 15.08.2024, 10:25Приветствую.
Весь проект в архиве куда нибудь выложи, что бы можно было посмотреть.
Приветствую.
Весь проект в архиве куда нибудь выложи, что бы можно было посмотреть.