Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 628

Многократная перезапись файла случайным мусором

22.03.2014, 16:15. Показов 2253. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача, допустим 10 раз перезаписать файл случайными данными. При этом желательно, чтобы генерация происходила из всего множества символом...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.03.2014, 16:15
Ответы с готовыми решениями:

Создание файла. Перезапись информации с одного файла в другой. Ошибки
Здравствуйте! Помогите пожалуйста. Поставлена задача: создать файл из 55 целых чисел, используя генератор рандомных чисел. Переписать все...

Многократная печать одного файла с заменой одного слова
Всем привет! есть файл, который нужно распечатать около 100 раз с заменой одного слова. Может быть, кто-то знает, как это сделать...

С++ Перезапись файла
Всем привет. Работаю с командной строкой. Не понимаю как сделать при перезаписи файла, чтобы пользователь мог ввести в CMD выбор Y/N....

25
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
22.03.2014, 16:26
Записать в файл
10 раз
Рандомными данными

Добавлено через 7 минут
Множество символов
2
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 628
22.03.2014, 16:33  [ТС]
Спасибо! ВОпрос конечно был про генерацию случайного символа из всего их множества.
0
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
22.03.2014, 16:40
uzlprog,
VB.NET
1
2
3
 For i As Integer = 0 To 255
            MsgBox(Chr(i))
        Next
?
1
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 628
22.03.2014, 17:01  [ТС]
Возникла такая проблема. Я перезаписываю файл по байтно, как-то:

VB.NET
1
2
3
4
Dim fileByts() As Byte = File.ReadAllBytes (FileName.FileName)
                For i = 0 To fileByts.Length - 1
                   fileByts(i) = значение
                Next
Для получения слычайного числа использую что-то вроде a = Math.Round(Rnd() * 255)
Естественно fileByts(i) = Chr(a) выругается на то, что дескать значения типа "Char" невозможно преобразовать в "Byte".

Что-то я ни как не соображу как решить эту проблему?
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
22.03.2014, 17:58
А зачем считывать из файла все байты, если им все равно капец.
Есть же средство получения размера файла, а это, что ни на есть - количество байт в оном
VB.NET
1
2
3
4
5
6
7
8
        Dim R As New Random
        Dim fName As String = "C:\4444.png"
        Dim BufSize As Integer = New IO.FileInfo(fName).Length
        Dim Musor_no_police(BufSize - 1) As Byte
        For I As Integer = 0 To BufSize - 1
            Musor_no_police(I) = R.Next(0, 256)
        Next
        IO.File.WriteAllBytes(fName, Musor_no_police)
2
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 628
22.03.2014, 21:54  [ТС]
Памирыч, это отличная подсказка. Спасибо! Но возник такой вопрос: что делать с большими файлами.

Скажем, при замусоривании большого файла, VB выдает ошибку System.OutOfMemoryException... Мне вообще всегда была интересна тема работы с большими файлами на VB, в 6-ой версии с этим были проблемы, а что с .NET?

Добавлено через 18 минут
Ругается на строку:

VB.NET
1
Dim Musor_no_police(BufSize - 1) As Byte
при скажем попытки засорить файл на 1.5 Gb. Я так понимаю это вездесущее ограничение на размер переменной? Как-то можно обойти это ограничение? Первая мысль которая пришла - обработка файла по частям, но я даже не представляю как это реализовать...
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
22.03.2014, 21:57
Да, та же песня, не дает создать переменную. Надо кумекать...
0
8 / 8 / 1
Регистрация: 07.03.2014
Сообщений: 43
22.03.2014, 22:02
Вот и я закумекал не пойму что должна была обозначать вот эта интепретация в скобках. Может куда нидь count всунуть или еще че
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
22.03.2014, 22:04
crba-tgl, интерпретация в скобках - размер создаваемого массива.
Этот размер слишком велик, поэтому вылетает исключение (наверно студия это дело сразу контролирует)
0
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 628
22.03.2014, 22:11  [ТС]
А были решения на vb6? Мне кажется что-то такое было...
Может перетирать файл по строкам?
0
8 / 8 / 1
Регистрация: 07.03.2014
Сообщений: 43
22.03.2014, 22:15
дада точняк размер не о том мыслил) случайно с файлом нет проблем, или может нужно что в настройках проекта сделать(помнится там всякие ограничения option onoff)
0
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 628
22.03.2014, 22:18  [ТС]
Дык, у Vb вроде просто ограничение на размер переменной?! Настройки тут не причем, вроде бы...
0
8 / 8 / 1
Регистрация: 07.03.2014
Сообщений: 43
22.03.2014, 22:32
хм решил попробовать откомпиллить у себя:
VB.NET
1
2
3
4
5
6
7
8
Dim R As New Random
        Dim fName As String = "C:\4444.png"
        Dim BufSize As Integer = New IO.FileInfo(fName).Length 'Ошибка Оператор Option Strict On не позволяет выполнять неявные преобразования из "Integer" в "Byte"
        Dim Musor_no_police(BufSize - 1) As Byte
        For I As Integer = 0 To BufSize - 1
            Musor_no_police(I) = R.Next(0, 256)'Оператор Option Strict On не позволяет выполнять неявные преобразования из "Long" в "Integer".
        Next
        IO.File.WriteAllBytes(fName, Musor_no_police)
Все же кажись в этой стороне надо копать - option) Или как наоборот нестыковка в типах. Может и объявить ему вместо int byte? int ведь маленькая цифра)) судя по количеству байт в 1.5 гб врядли влезет в int или ошибаюсь !?
p.s. sry доступ к студию трудноват)

Добавлено через 12 минут
Честно скажу не пойму всю замысловатость кода, но вот так у меня все откомпилось в событии load при файле 701мб avi:
VB.NET
1
2
3
4
5
6
7
8
 Dim R As New Random
        Dim fName As String = "C:\SkyDrive\1.avi"
        Dim BufSize As Long = New IO.FileInfo(fName).Length
        Dim Musor_no_police(CInt(BufSize - 1)) As Byte
        For I As Integer = 0 To CInt(BufSize - 1)
            Musor_no_police(I) = CByte(R.Next(0, 256))
        Next
        IO.File.WriteAllBytes(fName, Musor_no_police)
Прога чуть напряглась, вентилятор зашуршал но через 15-20 сек я видел ту самую форму. Может в этом проблема?

Хех а теперь вроде понял - заменяется просто рандомный блок байтов файла на рандомный!? вирусню чтоли автор пишет, шалун
0
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 628
22.03.2014, 22:48  [ТС]
Вот только хотел предложить использовать long

Long — целое число, длинное(от -9223372036854775808 до 9223372036854775807)
Но это не панацея! При 1.5 Гб это числа все равно не хватит(((

Добавлено через 13 минут
Хотя почему не хватает я так и не понял... 9223372036854775807 - это же очень много. Мы считываем кол-во байт в файле, так 9223372036854775807 байт - это 8 эксабайт! Почти весь Интернет)))

Хех а теперь вроде понял - заменяется просто рандомный блок байтов файла на рандомный!?
Вы о чем?! какой рандомный блок в рандомный блок??? Мы записываем в файл количество байт равное его размеру. И при чем тут вирусня не понятно)))

Можете задать Musor_no_police(I) = 0 результат не изменится...
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
22.03.2014, 22:52
Есть одна приблуда - произвольный доступ к файлу.
Если он и вызывает переполнение, то только чаши терпения

Добавлено через 3 минуты
А обязательно переписывать весь файл? По сути переписать можно например, первую треть, считай, потерян.

Не по теме:

Я вот тут наэкспериментировал, у меня этот бедный файл с 1,5 Гб уже до 3 вырос

0
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 628
22.03.2014, 22:54  [ТС]
Есть одна приблуда - произвольный доступ к файлу.
Что-то не нашел информацию по такому... Можно по подробнее?

Неужели до нас никто не придумал решения такой проблемы? Я припоминаю была какая-то прога на Vb6 работающая с файлами до 2 gb...

Я вот тут наэкспериментировал, у меня этот бедный файл с 1,5 Гб уже до 3 вырос
Это как?!
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
22.03.2014, 23:01
Вот с этим произвольным доступом. Забыл уж как работать, замусорил файл, а ни одной процедуры не дождался до конца.
Суть такого подхода в том, что чтобы записать что-то внутрь файла, ему не надо его считывать.

Затык происходит не в том, что долго открывается, а в том, что слишком много пишется
0
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 628
22.03.2014, 23:07  [ТС]
У меня критичный размер файла в текущей задаче 1.5 Гб. Так что может поделитесь. Конечно для общего обозрения интересно решить задачу с произвольным размером...
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
22.03.2014, 23:09
Код кривой, надо допиливать. Стоит так же учесть, что запись может длиться минутами (очень долго)
Если быстродействие не важно, могу скинуть велосипедище
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.03.2014, 23:09
Помогаю со студенческими работами здесь

Перезапись файла
Добрый день. НаписАл программку на php которая достаёт инфу с сайта и сохраняет в excel файл на локальном компьютере. Необходимо...

Перезапись файла
Открываю файл, в memo в нем что то меняю, но когда сохраняю то файл остается пустым. Найдите пожалуйста ошибку. procedure...

перезапись файла
Уважаемые знатоки, можно как-то организовать защиту перезаписи или удаления файла из конкретной папки в Windows, а именно в папке с...

Перезапись файла
Всем привет. Мне нужно удалить строку (произвольную) из файла. Как я понял, единственный способ это сделать - полностью стереть...

Перезапись бинарного файла
В общем код корректно отрабатывает, без ошибок, но бинарный файл постоянно разростается, и я не могу понять почему. Я и дописывать...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru