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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Класс rationalNumbers С конструктором и перегруженными операциями + и - http://www.cyberforum.ru/cpp-beginners/thread1221415.html
Дана задача помогите решить С++ Создайте класс rationalNumbers со следующими возможностями: Создайте конструктор, который предотвращает равенство нулю знаменателя дроби. Перегрузите операции сложения и вычитания
C++ Работа с динамическими стеками - ошибка Имеется задача: Задание: смоделировать стек на основе односвязного списка и решить на этой структуре задачу по варианту из списка ниже. Создать интерактивное приложение с возможностью выбора команды: а) ввод данных в стек(и) из стандартного или нестандартного текстового файла(ов); б) вывод данных из всех стеков на экран (стандартный текстовый файл); в) решение задачи; г) освобождение стеков; д)... http://www.cyberforum.ru/cpp-beginners/thread1221414.html
C++ Класс POINT (ТОЧКА), который может вводить и выводить точки с заданными координатами
Создайте класс POINT (ТОЧКА), который может вводить и выводить точки с заданными координатами. Создайте 5 объектов класса POINT ПОМОГИТЕ С++
Что лучше использовать? Шаг переменной dx C++
Есть описание функции. вот как я её сделал: if (abs(x) >= 10){ printf("Y(x)=%1.2f\n\n", y = x*x); } else { printf("Y(x)=%1.2f\n\n", y = abs(x)); } Нужно добавить к ней такие условия: задаваемый диапазон (a,b), шаг функции dx, т.е. что бы на каждом шаге проверял условие. что лучше для этого использовать и как организовать код?
C++ Написать программу вывода сетки таблицы размером 3*2 http://www.cyberforum.ru/cpp-beginners/thread1221405.html
Написать программу вывода сетки таблицы размером 3*2 Помогите кто сможет
C++ Сбой при преобразовании в coff при построении выдает ошибку "Сбой при преобразовании в coff: файл недопустим или поврежден" Microsoft Visual Studia 2010 Professional Вот код программы: #include <iostream> #include <fstream> #include <conio.h> #include <string.h> using namespace std; подробнее

Показать сообщение отдельно
quwy
Native x86
 Аватар для quwy
2734 / 1823 / 477
Регистрация: 13.02.2013
Сообщений: 6,109
02.07.2014, 19:19     Как востановить поврежденный файл
Прочитать с игнорированием сбойных участков можно, но тут есть ньюансы.
1. При таком чтении принято не выбрасывать непрочитанную информацию, а заполнять эти места нулями (или другими значениями), чтобы длина файла не изменялась.
2. При сбое чтения с оптического диска непрочитанными окажутся не "биты", а целое число секторов, т.е. 4096 байт и выше.
3. При чтении битого файла операционная система мурыжит его очень долго, пытаясь прочитать много раз, в итоге скорость такого копирования будет ужасающе низкой.

Добавлено через 13 минут
Алгоритм простой:
Код
Открываем входной файл;
Открываем выходной файл;
Пока не достигнут конец входного файла, цикл
  Читаем 512 байт из входного файла;
  Если считано больше 0 байт, то
    Записываем эти байты в выходной файл;
    Прибавляем количество считанных байт к счетчику прочитанных байт;
  Иначе
    Записываем в выходной файл нули в количестве Min(512, Размер исходного файла - Счетчик прочитанных байт);
    Перемещаем файловый указатель входного файла вперед на ту же длину Min(512, Размер исходного файла - Счетчик прочитанных байт);
    Прибавляем Min(512, Размер исходного файла - Счетчик прочитанных байт) к счетчику прочитанных байт;
Конец цикла;
Закрываем входной файл;
Закрываем выходной файл;
 
Текущее время: 13:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru