Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Prototype777
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 21
#1

Как востановить поврежденный файл - C++

02.07.2014, 18:00. Просмотров 412. Ответов 6
Метки нет (Все метки)

На летнюю практику надо написать программу, которая проверяет если не поврежден файл, если поврежден то восстанавливает его. Язык программирования С + + или С #. Объясните с чего начать, потому что не понимаю по какому принципу проверяется, і восстанавливается файл.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2014, 18:00     Как востановить поврежденный файл
Посмотрите здесь:

Востановить файлы .cpp и .h из проекта с DiskDigger 1.6.0.1571 ? - C++
Не знаю, стоит ли точно этим заниматься. Вчера папа как-то умудрился удалить файлы .cpp и .h из проекта визуал студии 2010. Он хотел...

Файл: Как сделать так, чтобы числа в файл были прописаны не рандомно? - C++
Здраствуйте, дан код: #include "stdafx.h" #include <iostream> #include <fstream> #include <cstdlib> #include <ctime> ...

Файл: Как сделать так, чтобы при запуске программы проверялось, существует ли файл? - C++
Как сделать так, чтобы при запуске программы проверялось, существует ли файл. Если да, то он обнуляется, если нет, то создается?

Как считать файл построчно записывая в другой файл? - C++
1) Данная программа считывает только первую строку следующие строки она не трогает. Хотел решить данную проблему через while, но не знаю...

Как из С++ передать данные в текстовый файл? и как читать текстовые файлы в С++? - C++
Задача такая: у меня есть текстовый файл, в котором из матлаба передано некоторое число N. как теперь это число прочитать? потом...

Как прочитать корневую директорию, как файл в hex-ввиде? - C++
Файл можно открыть так: #include <iostream> #include <cstdio> int main() { FILE * ptrFile = fopen("G:\filename.txt",...

Как заполнить файл и как осуществить посимвольное чтение - C++
решила задачу с файлами на высоком уровне, а нужно на низком, помогите плиз!!!не могу разобраться как заполнить файл и как осуществить...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
quwy
Native x86
3085 / 1933 / 511
Регистрация: 13.02.2013
Сообщений: 6,440
02.07.2014, 18:07     Как востановить поврежденный файл #2
Цитата Сообщение от Prototype777 Посмотреть сообщение
Объясните с чего начать
С выяснения у преподавателя тех критериев, по которым файл признается "поврежденным".
Prototype777
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 21
02.07.2014, 18:47  [ТС]     Как востановить поврежденный файл #3
Мне попался руководитель не знающий программирования. Он мне мало что объяснил. Насколько я понял то это должно быть так:
Если в файле есть биты которых нельзя прочитать, то их просто надо удалить из этого файла.
Может быть и другой подход.
Эта программа должна восстанавливать файлы, например, из поврежденных оптических дисков ...
quwy
Native x86
3085 / 1933 / 511
Регистрация: 13.02.2013
Сообщений: 6,440
02.07.2014, 19:19     Как востановить поврежденный файл #4
Прочитать с игнорированием сбойных участков можно, но тут есть ньюансы.
1. При таком чтении принято не выбрасывать непрочитанную информацию, а заполнять эти места нулями (или другими значениями), чтобы длина файла не изменялась.
2. При сбое чтения с оптического диска непрочитанными окажутся не "биты", а целое число секторов, т.е. 4096 байт и выше.
3. При чтении битого файла операционная система мурыжит его очень долго, пытаясь прочитать много раз, в итоге скорость такого копирования будет ужасающе низкой.

Добавлено через 13 минут
Алгоритм простой:
Код
Открываем входной файл;
Открываем выходной файл;
Пока не достигнут конец входного файла, цикл
  Читаем 512 байт из входного файла;
  Если считано больше 0 байт, то
    Записываем эти байты в выходной файл;
    Прибавляем количество считанных байт к счетчику прочитанных байт;
  Иначе
    Записываем в выходной файл нули в количестве Min(512, Размер исходного файла - Счетчик прочитанных байт);
    Перемещаем файловый указатель входного файла вперед на ту же длину Min(512, Размер исходного файла - Счетчик прочитанных байт);
    Прибавляем Min(512, Размер исходного файла - Счетчик прочитанных байт) к счетчику прочитанных байт;
Конец цикла;
Закрываем входной файл;
Закрываем выходной файл;
Prototype777
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 21
02.07.2014, 20:10  [ТС]     Как востановить поврежденный файл #5
Спасибо
SmashDream
39 / 31 / 11
Регистрация: 09.06.2012
Сообщений: 144
03.07.2014, 08:58     Как востановить поврежденный файл #6
Любой файл с точки зрения программы - это набор байтов.
Соответственно самой программе сильно пофиг сколько и какие это байты. Не пофиг алгоритму, который с файлами работает. Соответственно файл считается поврежденным если он не соответствует задуманному стандарту. Иными словами в алгоритм должно быть заложено знание того каким быть должен не поврежденный файл. Вопрос комплексный.
Если задача определить возможность физического повреждения носителя, то надо боольше курить мануалов D:
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2014, 20:25     Как востановить поврежденный файл
Еще ссылки по теме:

Как создать программу, и сохранить её как файл - C++
Добрый вечер. У меня вопрос: как создать программу, и сохранить её как файл. Например: Я создал программу которая будет определять...

Как создать файл? - C++
Нужно создать файл, который будет открываться в программе. Как это сделать? Программа все время выдает "файл не найден" Как и где мне...

Как перезаписать файл? - C++
Использую потоки fstream, не могу найти информации о том, как перезаписать файл или же вернуть указатель на {0;0} файла

Как открыть файл ? - C++
У меня есть визуал студио 2013 и нужно при нажатии на кнопку открыть скажем файл с расширением ехе Ну просто для примера. Какой код...

Как открыть файл? - C++
Как открыть файл или программу через с++? К примеру есть приложение .exe, я открываю с++ программу и .ехе открывается. Просто открыть(не в...


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

Или воспользуйтесь поиском по форуму:
Prototype777
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 21
05.07.2014, 20:25  [ТС]     Как востановить поврежденный файл #7
Цитата Сообщение от quwy Посмотреть сообщение
Если считано больше 0 байт, то
А как это проверить?
Если можно код.
Yandex
Объявления
05.07.2014, 20:25     Как востановить поврежденный файл
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru