UInt32[] prevpos = new UInt32[256];
double dS = 0; // интеграл энтропии
UInt32 ReadBytes = 0; //количество прочитанных байтов
int N; // счетчик цикла
double Entropy = 0; // подсчитанная энтропия
UInt32 NumBytes; // сколько байтов осталось прочитать до конца буфера
UInt32 newpos = 0;
byte[] buf = new byte[1024];
for (int i = 0; i < prevpos.Length; i++)
{
prevpos[i] = 0;
}
FileStream FileOpen = new FileStream(OpenFileDlg.FileName, FileMode.Open, FileAccess.Read);
NumBytes = (UInt32)FileOpen.Read(buf, 0, buf.Length);
do
{
dS = 0;
for (N = 0; N < 1024; ++N)
{
// Считаем - сколько байт прошло, прежде чем мы встретили buf[N] байт
newpos = ReadBytes - prevpos[buf[N]];
// считаем увеличение энтропии от этого байта
dS += (newpos <= 256) ? (double)(newpos) / 256 : (double)(ReadBytes - (newpos - 256)) / ReadBytes;
// сохраняем новую послед. позицию найденного байта buf[N]
prevpos[buf[N]] = ReadBytes;
++ReadBytes;
}
Entropy += dS;
// читаем очередную порцию данных
NumBytes = (UInt32)FileOpen.Read(buf, 0, buf.Length); //256
// пока не достигли конца файла - продолжаем считать энтропию
} while (NumBytes != 0);
double x = (100 * ((Entropy / ReadBytes) / 0.63));
MessageBox.Show(x.ToString());
Источник : Энтропия файла Покажите пожалуйста видео Youtube.
Наверно требуется добавить ссылку на сборку System.Windows.Forms. И в место OpenFileDlg.FileName вписать полный путь до файла.
В общем я не экстрасенс, я не могу узнать какие у вас ошибки при компиляции проекта. Вы бы выложили ошибки компиляции сюда.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Всем приветУ меня стоит задачка в заполнении таблицы в MS Word
Пытаюсь написать парсерВроде сделал всё как в уроке
На грид добавлена колонка с типом чекбоксВсе выводится замечательно, но при нажатии на чекбокс он не отмечается