2 / 2 / 1
Регистрация: 20.02.2014
Сообщений: 9

Затирание файла случайным набором байт

20.02.2014, 19:48. Показов 2646. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно такой вопрос. Есть код:
C#
1
2
3
4
5
6
7
8
FileStream fs;
            Random rnd = new Random(byte.MaxValue);  //Генерирует различные случайные байты
            fs = new FileStream(filetodel, FileMode.Open);
            for (int i = 0; i < fs.Length; i++)
            {
                fs.WriteByte((byte)rnd.Next());  //Получаем случайный байт и записываем его в файл
            }
            fs.Close();
Результатом его работы всегда становится одно и тоже. Т.е. если им перезаписать текстовый файл со словом
Текст, то получим t”є’н. Он ведь генерирует случайный символ в этой строке:
C#
1
Random rnd = new Random(byte.MaxValue);
Или я чего-то не понимаю?(не силен в C#)
Может ошибка в коде?
Помогите пожалуйста, объясните почему на выходе всегда одно и тоже.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.02.2014, 19:48
Ответы с готовыми решениями:

Как заполнить поле случайным набором символов?
Привет! Я тут доку по SQL найти немогу, а надо срочно решить эту задачку. Подскажите как в SQL сгенерить набор случайных символов?

Заполнение коллекций случайным набором целых чисел
Нужно заполнить коллекции ArrayList и LinkedList одним и тем же случайным набором целых чисел. Сравнить время добавления элемента в начало...

Вытащить текст после определенного слова со случайным набором чисел
Имею записи подобного вида, где числа после &quot;prefix.&quot; - рандомные: prefix.123456.&amp;1 &amp;3 Требуется получить подчеркнутую часть, при...

7
Эксперт .NET
 Аватар для insite2012
5546 / 4309 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
20.02.2014, 19:59
Попробуйте так...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
 
namespace ConsoleApplication11
{
    class Program
    {
        static void Main(string[] args)
        {
            FileStream fs;
            Random rnd = new Random(byte.MaxValue);  //Генерирует различные случайные байты
            fs = new FileStream("C:\\123.txt", FileMode.Open);
            var sw=new StreamWriter(fs,Encoding.Default);
            for (int i = 0; i < fs.Length; i++)
            {
                //byte b = (byte)(rnd.Next());
                sw.Write((char)(rnd.Next()));  //Получаем случайный байт и записываем его в файл
            }
            sw.Close();
            fs.Close();
        }
    }
}
1
2 / 2 / 1
Регистрация: 20.02.2014
Сообщений: 9
20.02.2014, 23:33  [ТС]
Спасибо, но теперь все символы меняются на знак "?". Как я понимаю нету рандомной генерации символа, хотя может я просто не вижу их?
0
Заблокирован
20.02.2014, 23:48
Reflexio, наверное тут дело в кодировке
0
2 / 2 / 1
Регистрация: 20.02.2014
Сообщений: 9
21.02.2014, 00:16  [ТС]
Ev_Hyper, Да вы правы ели изменить кодировку (к примеру на UTF-16 или windows-1251)
C++
1
var sw = new StreamWriter(fs, Encoding.GetEncoding("UTF-16"));
то символы меняются.
Но мне интересно другое, ели символ генерируется случайно, то почему в фале отображается всегда одно и тоже, не зависимо от того сколько раз он был переписан. Я писал выше что если переписать слово "Текст" получается "t”є’н" в другой кодировке "?????" и т.д. Как сделать так чтоб при каждом запуске метода результат менялся? Чтобы выразится более конкретно представим что есть 3 текстовых файла со словом "Текст", если каждый из них перезаписать по очереди то результат во всех 3 файлах будет одинаковый т.е. "t”є’н". Хотелось бы увидеть в каждом из файлов разные символы. Каким образом это можно реализовать?
0
Заблокирован
21.02.2014, 00:31
Странно, у меня последовательность разная от запуска к запуску

Code
1
2
3
4
5
//первый
⎔悺춒줳았䷦馈ܱ섛௷쁫䜢뗋끟隥敽⛕秩営슂髝昀꘍녹횶䁞뢥
 
//второй, текст вернул на первоначальный
⎔悺춒줳았䷦馈ܱ섛௷쁫䜢뗋끟隥敽⛕秩営슂髝昀꘍녹횶䁞뢥黪勞㨅횳齶鄮遟藁
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
21.02.2014, 00:37
Лучший ответ Сообщение было отмечено Reflexio как решение

Решение

Попробуйте так:

C#
1
2
3
4
5
...
Random rnd = new Random(); 
.... 
(char)(rnd.Next(byte.MinValue,byte.MaxValue)));
...
1
2 / 2 / 1
Регистрация: 20.02.2014
Сообщений: 9
21.02.2014, 00:52  [ТС]
S_el, Большое спасибо. Все работает так как и хотелось.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.02.2014, 00:52
Помогаю со студенческими работами здесь

Заполнить массив случайным набором чисел от-5 до 10. Как пользоваться Rand?
Необходимо заполнить массив случайным набором чисел от -5 до 10, но проблема в операторе rand это верный код, но он заполняет массив...

Строка: Выдать предложения со случайным набором слов из соответствующих массивов по заданной схеме...
Составить 3 массива строк (двумерная структура). Первый массив будет содержать английские артикли, 2 - существительные, 3 - предлоги, 4 -...

Программа, которая считывает 8 байт из созданного файла MyFile.dat, начиная с 7-го байта, относительно начала, и 10 байт от конца файла
Привет, вот задание собсно Напишите программу, которая считывает 8 байт из созданного ранее файла MyFile.dat, начиная с 7-го байта,...

Затирание файла с использованием FileStream
Всем привет ! Есть такая open source прога - eraser, она позволяет затирать файлы, т.е. перезаписывать кластеры файла какими нибудь...

Считывание из входного файла байт с N1 по N2 и с N3 по N4 и запись этих байт в выходной файл
Здравствуйте!Помогите пожалуйста написать программу, которая бы считывала из входного файла байты с N1 по N2 и с N3 по N4 и записывала эти...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. ) Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru