@roflanPominki

Из-за чего долго переводит в двоичный код, при большем объеме текста(112 КБ файл)?

private void button2_Click(object sender, EventArgs e)
        {
            string path = "";
            OpenFileDialog ofd = new OpenFileDialog();
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                path = ofd.FileName;
            }
            StreamReader reader = new StreamReader(path);
            byte[] buf = Encoding.UTF8.GetBytes(reader.ReadToEnd());
            StringBuilder sb = new StringBuilder(buf.Length * 8);
            foreach (byte b in buf)
            {
                sb.Append(Convert.ToString(b, 2).PadLeft(8, '0'));
            }
            string binaryStr = sb.ToString();

            textBox1.Text = binaryStr;
            TextWriter tw = new StreamWriter(@"W:\du.txt");
            tw.WriteLine(binaryStr);
            tw.Close();
        }

Из-за чего может медленно работать и как это можно исправить?
  • Вопрос задан
  • 106 просмотров
Решения вопроса 2
GavriKos
@GavriKos
Ну подключаете профайлер и смотрите, что у вас выполняется долго.
Скорее всего - Convert.ToString долго работает.
Ответ написан
Комментировать
@AndromedaStar
.Net - monkey
PadLeft создаёт новую строку в памяти. Для каждого байта получается новая строка. Поэтому и супер долго.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы