Ошибка ввода вывода 103

Okay, it’s over a year late, but I’m going to add my comment to this, as it explains why this is happening.

I had the exact same problem in a multi-threaded application with code almost identical to the snippet above and I had critical sections protecting the code.

The problem occurred most readily when one logging operation swiftly followed another. The second operation would fail for the above reason.

I thought it was anti-virus software too, but the error happened on one machine and not the other, where both had Norton 360 installed. The machine with the problem was brand new Windows 7 and the one without was Windows XP. A colleague also had the problem running the system under a virtualised Windows Vista machine with no virus checker installed.

So my question was, «why was this XP machine so different?».

For one, it wasn’t virgin, and that is the answer it seems:

Opportunistic locking and NT caching were turned off. Most (mature) Delphi developers will know that when using BDE, these are turned off in order to maintain DBF and DB file integrity in multi-user situations. These settings were not disabled on the newer machines because we no longer develop for Paradox data files!

Delayed write caching seems to leave a read/write lock on the file until the OS has done its business, which could be several milliseconds later.

So, in my case, the second log event was being blocked by the first.

Okay, I’m not suggesting that you turn off opportunistic locking + NT Caching. One of the major reasons we moved away from BDE was to avoid persuading customers to tinker with such settings. So, there are four practical solutions:

1) To retry for an acceptable period of time, as mentioned by dangph.

2) to open the file when the application loads and hold it open for the full duration of the application. Not so useful if you are running multiple instances of the application.

3) Lazily put a sleep(1) before the logging code and hope that is long enough for the lock to be released. But that risks slowing your system down if you are doing lots of logging.

or 4) Put a try…except..end around your code. But then you are probably guaranteed to miss 100% of the second messages (referring to my case).

Почему выскакивает ошибка при обработке файла: IO error 103 ?

var
  fall, f1: TextFile;
  S: string;
begin
    AssignFile(fall, OpenDialog1.FileName);
    reset(fall);

    if CheckBox1.Checked then
    begin
        AssignFile(f1, 'Organization.txt');
        rewrite(f1);
    end;

    //работаем по строкам в файле
    while not Eof(fall) do
    begin
        //читаем строку
        ReadLn(fall, S);
        if CheckBox1.Checked and (Pos(AnsiLowerCase(Edit1.Text), AnsiLowerCase(s)) > 0) then
            writeln(f1, S);
    end;

    CloseFile(fall);
    CloseFile(f1); // <<-- Ошибка выскакивает тут
end;

Kromster's user avatar

Kromster

13.6k12 золотых знаков43 серебряных знака72 бронзовых знака

задан 24 фев 2018 в 17:51

Татьяна's user avatar

0

Ошибка, с большой долей вероятности, случается потому, что файлы вы открываете на чтение/запись по условию, а вот закрываете файл затем уже в любом случае. Скорее всего, одно из условий:

if CheckBox1.Checked then
if CheckBox2.Checked then
if CheckBox3.Checked then

у вас не выполняется, но при этом CloseFile вы делаете для всех файлов без условий. Исправьте это, введя те же самые условия и для CloseFile.

Kromster's user avatar

Kromster

13.6k12 золотых знаков43 серебряных знака72 бронзовых знака

ответ дан 24 фев 2018 в 18:06

Viktor Tomilov's user avatar

Viktor TomilovViktor Tomilov

8,0374 золотых знака24 серебряных знака62 бронзовых знака

3

if CheckBox1.Checked then
  CloseFile(f1);

ответ дан 24 фев 2018 в 18:07

1

Содержание

  1. Как исправить ошибку I/O 103? Заранее спасибо.
  2. Delphi IO Error 103
  3. Related Posts
  4. Delphi: Почему я иногда получаю ошибку ввода-вывода 103 с этим кодом?
  5. 12 ответы
  6. Delphi: Почему я иногда получаю ошибку 103 ввода-вывода с этим кодом?
  7. ОТВЕТЫ
  8. Ответ 1
  9. Ответ 2
  10. Ответ 3
  11. Ответ 4
  12. Ответ 5
  13. Ответ 6
  14. Ответ 7
  15. Ответ 8
  16. Ответ 9
  17. Ответ 10
  18. Ответ 11

ВОТ небольшой FAQ по этим ошибкам :

1. Что значит H/Д в результате анализа
Ответ: Недоступен сервер. В вычисляемых полях (те, которые используют результаты анализа других полей), это означает, что не хватает данных.

2. Как интерпретируются нечисловые данные в формуле
Ответ: Да в формуле будет 1; Нет, Ошибка, Н/Д, пустое поле — как 0.

3. Я ввел в поле формула неправильную математически формулу. После анализа я получил ошибку. Мне что теперь заново все проверять, чтобы посчитать свою формулу?
Ответ: На вкладке «Обработка» кнопка «Посчитать формулу»

4. При запуске программы вылетает ошибка Read of address: и интерфейс программы не отрисовывается
Ответ: Повреждена БД программы. Чаще всего случается, если биржа или анализируемый сервис подмешал в содержимое один из служебных символов БД. Решение: удалить файл datasource.sdb

5. Как произвести импорт своего списка доноров? (Не с бирж)
Ответ: Создаем текстовый файл, вверху пишем на первой строчке слово «Донор+Tab»
без кавычек и плюча, где [Tab] — Клавиша Tab на клавиатуре. Со следующей строчки списком доноры. По одному на строку. В адресе донора должно присутствовать http://

6. Получил ошибку ‘Отсутсвует доступ к серверу времени. Проверьте подключение к интернету’#13#10’И возможность работы со 123 портом.’ Что это значит?
Ответ: Невозможно найти сервер времени в сети. Попробуйте еще раз через несколько минут. Или обратитесь к провайдеру с просьбой улучшить качество линии и настройки серверов))

7. Когда вылезает информационное окно, Линкматер лезет на передний план. Надоело!
Ответ: Сверните Линкмастер кнопкой _ вверху. Тогда он вылазить не будет. Если вы просто перейдете к другому окну — будет вылизить. Сделано, чтобы вы могли контролировать удаление ссылок например.

8. Я не могу импортировать файл в базу. Постоянно появляется ошибка I/O error 103.
Ответ: Очевидно вы открыли этот файл параллельно в одном из приложений MS Office. Офис использует файлы только в монопольном режиме, поэтому программа не может их прочитать. Закройте приложение MS Office.

9. Как импортировать XAP через файл?
Ответ: К сожалению XAP не предоставляет удобного инструмента экспорта. При клике на кнопках проекта XAP выдает околоссылочный текст и анкор вместе, никак не выделяя что есть что, плюс отсутствует возможность узнать куда ведет ссылка. Единственная возможность провести импорт вручную — следовать следующим шагам:
9.1 В бирже, в разделе Компании нажать кнопку Экспорт всех данных (в нем содержится полный набор необходимой информации).
9.2 Полученный файл сохранить как текстовый.
9.3 Провести фильтрацию этого файла сторонними инструментами (выделить необходимую Вам компанию из всего списка) или внутри программы фильтруя поле Куда ссылается после импорта в программу.
9.4 Провести импорт файла в программу
9.5 Ни в коем случае не удаляйте первую строчку с заголовками колонок, именно по ним программа определяет, что файл именно с XAP.

10. Как считаются беки в Яху, в siteexplorer совсем другая цифра?
Ответ: http://search.yahoo.com/search;_ylt=A0geu7C7G9tGi9UArj6l87UF?fr=sfp&p= +
(linkdomain:[ИМЯ СЕРВЕРА БЕЗ ВВВ] OR linkdomain:[ИМЯ СЕРВЕРА С ВВВ]) -feature:frame -inurl:[ИМЯ СЕРВЕРА БЕЗ ВВВ]
+&iscqry=

То есть исключаем среди беков ретрансляторы содержимого, и внутренние страницы самого сайта, поэтому получается меньше цифра чем через siteexplorer

11. Какое соотношение между ксапами и долларами?
Ответ: 1 доллар = 1000 ксапам в программе

12. Я хочу чтобы у меня было несколько отдельных БД. Как мне это сделать?
Ответ: Вся информация о работе приложения (кроме лицензии) сохраняется рядом с исполняемым файлом Линкмастера. Таким образом, вы можете просто скопировать папку и назвать ее по-другому. Запуская исполняемый файл в соответствующей папке вы фактически обеспечите многопроектную работу.

13. Постоянно получаю Н/Д во всех полях, связанных с индексацией страницы и ссылки. Почему не отображается капча?
Ответ: Очевидно стоит нулевая задержка, в результате че

Источник

Delphi IO Error 103

Similarly to [this], the multithreading in a project has also caused the strange error, which is IO Error 103. It does not happen every time but randomly. I googled a bit and found this poston stackoverflow.

And I started to look into the Delphi code which has the File opening functions using Reset, AssignFile etc. Before, the following function will return the size of a given file.

The problem occurred most readily when one logging operation swiftly followed another. The second operation would fail for the above reason. To solve the IO 103 error, using the IO directive <$I->to suppress the exceptions and <$I+>to turn it on. The variable IOResult indicates that the IO operation is successful if it is zero. For example, the above code could be improved using the IOResult.

The function returns zero if there is an exception in reseting the file. If not, the IO Error 103 will be thrown out. Adding the IO code in the try … except … may suppress the 103 error. <$I+>is identical to <$IOCHECKS ON>and <$I->is the same as <$IOCHECKS OFF>.

If you have this 2343 installation/uninstallation problem that it seems not going away no matter…

If you have encounter the compiler problem [Unspecified Error] in Delphi 2007 on Windows 8…

This post gives a few C++ implementations that fill an array of integers by every…

By Default, the Delphi IDE stores the file information (version) directly in compiled Resource File…

In Delphi, the TFileStream can be used to stream the file reading and writing. Below…

I have raised a purchase order to purchase a license of Delphi XE8 and the…

If you want to get the file size in bytes for a file, you can…

Embarcadero has just released Delphi 10.1 Berlin on 20/April/2016. The CompilerVersion for Delphi 10.1 Berlin…

Tasks / Threads created by TParallel are more or less persistent which might be good…

Recently I am involved in optimising the Delphi code for I/O file access. I found…

Источник

Delphi: Почему я иногда получаю ошибку ввода-вывода 103 с этим кодом?

В нескольких моих приложениях у меня есть код, подобный следующему:

В одном приложении, когда я впервые пытаюсь выполнить это, я постоянно получаю исключение I / O Error 103 в строке с оператором Append (файл существует до вызова этого). Однако все последующие попытки выполнить операцию будут работать нормально — до тех пор, пока я не перезапущу приложение.

Все документы, которые я нашел об этой ошибке до сих пор, указывали, что это может быть вызвано вызовом CloseFile без предварительного Reset or Rewrite ( Append обычно не упоминается) или если файл использовался другим процессом. Поскольку исключение происходит до вызова CloseFile очевидно, что это не могло быть первым.

Я уже пробовал вставить Reset сразу после AssignFile для хорошей меры, но тогда я получаю исключение в этой строке.

Также нет другого приложения, открыто обращающегося к этому файлу. Я говорю «открыто», потому что у меня есть небольшое подозрение, что антивирус (в моем случае TrendMicro) может быть причиной проблемы (так что, возможно, файл is в использовании). Если это действительно проблема, как лучше всего ее решить? Жесткое кодирование автоматической повторной попытки на самом деле не кажется мне простым решением .

Другой случай, когда я иногда получаю ошибку 103, — это код, который я использую для создания пустого файла (или, чаще, для очистки существующего файла):

В этом случае воспроизвести гораздо сложнее. Это случается намного реже. В большинстве случаев это происходит при первом запуске после того, как я перекомпилировал приложение. Неужели это снова мешает антивирус? Я видел это только на моей машине разработки и никогда не получал отчета от клиента. Как и в первом сценарии, это происходит только один раз за сеанс приложения (если вообще). Последующие попытки всегда успешны.

Есть ли предложения по другому, потенциально более надежному подходу к созданию пустых файлов или очистке существующих?

задан 11 марта ’09, 11:03

12 ответы

Я не вижу, что не так с автоматической повторной попыткой. Я не думаю, что ты можешь делать что-то еще. Если какой-то другой процесс читает файл, то ваше добавление / перезапись завершится ошибкой. А поскольку файл представляет собой журнал, есть большая вероятность, что что-то, например средство просмотра журнала или текстовый редактор, будем читать его в тот момент, когда вы пытаетесь его открыть.

Попробуйте открыть файл несколько раз с задержкой между попытками, прежде чем окончательно потерпите неудачу. Вы можете использовать экспоненциальную отсрочку, если хотите быть фантазией.

ответ дан 12 мар ’09, в 03:03

Хорошо, уже больше года с опозданием, но я собираюсь добавить свой комментарий к этому, поскольку он объясняет, почему это происходит.

У меня была точно такая же проблема в многопоточном приложении с кодом, почти идентичным приведенному выше фрагменту, и у меня были критические секции, защищающие код.

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

Я думал, что это тоже антивирус, но ошибка произошла на одной машине, а не на другой, где на обоих был установлен Norton 360. На машине с проблемой была совершенно новая Windows 7, а на машине без нее — Windows XP. У коллеги также была проблема с запуском системы на виртуализированном компьютере с Windows Vista без установленной антивирусной программы.

Итак, мой вопрос был: «Почему эта машина с XP так отличалась от других?».

Во-первых, это не было девственницей, и, похоже, это ответ:

Были отключены оппортунистическая блокировка и кеширование NT. Большинство (зрелых) разработчиков Delphi знают, что при использовании BDE они отключены, чтобы поддерживать целостность файлов DBF и DB в многопользовательских ситуациях. Эти настройки не были отключены на новых машинах, потому что мы больше не разрабатываем файлы данных Paradox!

Кэширование с отложенной записью, похоже, оставляет блокировку чтения / записи для файла до тех пор, пока ОС не выполнит свою работу, что может произойти через несколько миллисекунд.

Итак, в моем случае второе событие журнала было заблокировано первым.

Хорошо, я не предлагаю вам отключить гибкую блокировку + кеширование NT. Одна из основных причин, по которой мы отошли от BDE, заключалась в том, чтобы не уговаривать клиентов возиться с такими настройками. Итак, есть четыре практических решения:

1) Чтобы повторить попытку в течение приемлемого периода времени, как указано в дангф.

2) открывать файл при загрузке приложения и держать его открытым в течение всего времени работы приложения. Не очень полезно, если вы запускаете несколько экземпляров приложения.

3) Лениво положите сон (1) перед кодом регистрации и надейтесь, что этого достаточно для снятия блокировки. Но это рискует замедлить работу вашей системы, если вы ведете много журналов.

или 4) Попробуйте . за исключением . завершите свой код. Но тогда вы, вероятно, гарантированно пропустите 100% вторых сообщений (в моем случае).

Источник

Delphi: Почему я иногда получаю ошибку 103 ввода-вывода с этим кодом?

В нескольких моих приложениях у меня есть код, похожий на следующий:

В одном приложении, в первый раз, когда я пытаюсь выполнить это, я последовательно получаю исключение 103 ошибки ввода-вывода в строке с оператором Append (файл существует до вызова этого). Все последующие попытки операции будут работать нормально — пока я не перезапущу приложение.

Все документы, которые я нашел об этой ошибке, указали, что это вызвано вызовом CloseFile без предшествующих Reset или Rewrite ( Append обычно не упоминается) или если файл находился в использование другим процессом. Поскольку исключение происходит до вызова CloseFile , оно, очевидно, не может быть первым.

Я уже пробовал вставить Reset сразу после AssignFile для хорошей меры, но затем я получаю исключение в этой строке.

Также нет другого приложения, открыто доступного для этого файла. Я говорю «открыто», потому что у меня есть небольшое подозрение, что антивирус (TrendMicro в моем случае) может быть куклитом здесь (так что, возможно, используется файл ). Если это действительно проблема, что было бы лучше всего вокруг нее? Жесткое кодирование автоматической повторной попытки на самом деле не похоже на чистое решение для меня.

Другим случаем, когда я иногда получаю ошибку 103, является этот код, который я использую для создания пустого файла (или чаще всего для удаления существующего файла):

В этом случае это намного сложнее воспроизвести. Это происходит гораздо реже. В большинстве случаев это похоже на первый запуск после того, как я перекомпилировал приложение. Может ли это снова стать антивирусом? Я только когда-либо видел это на моей машине разработки и никогда не получал отчет от клиента. Как и в случае с первым сценарием, это всегда случается один раз на один сеанс приложения (если вообще). Последующие попытки всегда успешны.

Любые предложения по другому, потенциально более безопасному подходу к созданию пустых файлов или опорожнению существующих?

ОТВЕТЫ

Ответ 1

Я не вижу, что не так с автоматической попыткой. Я не вижу, что ты можешь сделать что-нибудь еще. Если какой-либо другой процесс читает файл, то ваш Append/Rewrite завершится с ошибкой. И поскольку файл является журналом, есть хорошая вероятность, что что-то, например, просмотрщик журналов или текстовый редактор, будет читать его в тот момент, когда вы попытаетесь его открыть.

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

Ответ 2

Хорошо, это на год, но я собираюсь добавить свой комментарий к этому, потому что это объясняет, почему это происходит.

У меня была такая же проблема в многопоточном приложении с кодом, почти идентичным фрагменту выше, и у меня были критические разделы, защищающие код.

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

Я думал, что это тоже антивирусное программное обеспечение, но ошибка произошла на одном компьютере, а не на другом, где оба были установлены Norton 360. Машина с проблемой была совершенно новая Windows 7, а одна без Windows XP. У коллеги также возникла проблема с запуском системы под виртуализированной машиной Windows Vista без установленного антивируса.

Итак, мой вопрос: «Почему эта машина XP была такой разной?».

Во-первых, он не был девственником, и это ответ кажется:

Оппортунистическая блокировка и кэширование NT были отключены. Большинство (зрелых) разработчиков Delphi будут знать, что при использовании BDE они отключены, чтобы поддерживать целостность файлов DBF и DB в многопользовательских ситуациях. Эти настройки не были отключены на новых машинах, потому что мы больше не разрабатываем файлы данных Paradox!

Отложенное кэширование записи, похоже, оставляет блокировку чтения/записи в файле до тех пор, пока ОС не выполнит свою работу, и это может быть несколько миллисекунд позже.

Итак, в моем случае второе событие журнала блокировалось первым.

Хорошо, я не предлагаю отключить оппортунистическую блокировку + NT Caching. Одна из основных причин, по которым мы отошли от BDE, заключалась в том, чтобы избежать убеждения клиентов возиться с такими настройками. Итак, есть четыре практических решения:

1) Повторить попытку в течение приемлемого периода времени, как указано dangph.

2), чтобы открыть файл, когда приложение загружается и удерживает его открытым в течение всего срока действия приложения. Не очень полезно, если вы используете несколько экземпляров приложения.

3) Летите положить спать (1) перед кодом регистрации и надеяться, что это достаточно долго, чтобы блокировка была выпущена. Но это может замедлить работу вашей системы, если вы делаете много протоколирования.

или 4) Положите попытку. кроме.. вокруг вашего кода. Но тогда вам, вероятно, гарантированно пропустите 100% вторых сообщений (со ссылкой на мой случай).

Ответ 3

Помимо антивируса, он также может быть индексирующим программное обеспечение или программное обеспечение для управления файлами, например, Google Desktop. Однако настоящая проблема заключается в том, что сообщение об ошибке не поможет вам решить проблему. Я предлагаю вам переписать код для использования TFileStream, вместо этого, чтобы улучшить ваши сообщения об ошибках.

Ответ 4

Обычно вы должны открыть файл перед попыткой try..finally:

(попробуйте, наконец, не имеет никакого смысла в последнем случае)

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

Но я не думаю, что это проблема.

Ответ 5

Является ли ваше приложение многопоточным? У меня когда-то была такая же проблема, как и при одновременном вызове кода регистрации из обоих потоков. Если это так, используйте TCriticalSection для контроля доступа.

Ответ 6

Не могли бы вы взглянуть на блуждающую ошибку из чего-то еще, скомпилированного в состоянии $I?

Ответ 7

Ваш примерный код должен работать вообще, эти ошибки, похоже, являются ошибками доступа. Чтобы обнаружить случай этого, вы можете попытаться отключить TrendMicro и посмотреть, не исчезла ли проблема.

Ответ 8

Если я правильно понимаю, ваше назначение файла не выполняется. Вы уверены, что FileChecks находятся во время вызова AssignFile? Это довольно необычно, но вы можете проверить это, используя:

Я соглашаюсь использовать TFileStream (или что-то вроде функции доступа к низкоуровневому файлу). Это критично для производительности и может стать огромной проблемой при переходе на Unicode.

Ответ 9

Я ненавижу Windows. вижу, почему:

Это код, который решает проблему ReWrite (без сообщений):

Да, это абсурдно. если ReWrite терпит неудачу, сделайте Rewrite. но он работает для меня в 100% случаев.

Я ДЕБЮГ, что проблема, связанная с большим количеством ShowMessage. была немного фантазии после попытки не абсурдных вещей (файл был ранее открыт и т.д.). что произойдет, если я попробую ReWrite дважды? Сюрприз. если первый провал, вторая попытка срабатывает!

Я знаю, что это абсурд, но он работает!

Я знал это, потому что я писал много сообщений, например:

И я получил две сообщения:

  • 1,2,3,4 при работе fisrt rewrite
  • 1,2,3,5,6, когда переписывание fisrt не выполняется, обратите внимание, что существует 6, поэтому вторая перезапись работала

Надеюсь, что это поможет другим, не настолько безумным.

P.D.: Такая же проблема возникает с Reset. теперь я всегда инкапсулирую их в такую ​​попытку. кроме блока и избавлюсь от проблемы!

Ответ 10

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

У меня получился такой же ответ на ошибку, но в полнофункциональном программном обеспечении, в частности, анализаторе EIS, больше раз я пытался открыть файл, но через некоторое время его можно было открыть. Мне это было любопытно, поэтому я схватился за интернет. И действительно, как маловероятно, казалось (потому что значимая программа довольно мала), я нашел такой вызов ошибки. Я снимал эти ответы, и тот, у которого есть две проверки с зеленым чеком, я сразу последовал, просто интуитивно, и это так: Когда я открыл файл в другой программе, он не позволит мне перейти к откройте его как файл в анализаторе EIS.

Итак, общий вывод: когда вы открыли файл в одной программе, он не позволит вам открывать его где-нибудь еще, и вы получите сообщение об ошибке ввода/вывода ошибки 103.

PS: Немного смелый и лёгкий и легкий вывод (без правильного чтения (но у меня нет времени, извините) вышеупомянутые ответы), но я надеюсь, что у вас есть точка.:) Приветствия.

Ответ 11

Я случайно сделал CloseFile дважды и имел эту ошибку.

Источник

Summary: Failing hard drives usually shows I/O device error codes like error 105, error 131, error 6, error 21, and error 103, etc. Have you seen these errors codes while working on media devices? If yes then this is a must read post for you as it has all the best methods to fix these i/o device error codes issue.

Free Download for Windows

An I/O device error more often is an indicator of a failing hard drive or USB media. Failure could be logical or mechanical such as file system corruption or stuck actuator arm. Additionally, a faulty wire, disk errors, severe drive corruption, corrupt driver, and hardware damage could also lead to the hard drive device I/O error.

In this post, we will address how you can fix ‘The request could not be performed because of an I/O device error‘ without losing your photos, videos, office documents, and other crucial files stored on the affected media.

Common I/O Error Messages

  • I/O Error codes: error 105, error 131, error 6, error 21, and error 103
  • ‘Only part of a readprocessmemory or writeprocessmemory request was completed.’
  • ‘The request could not be performed because of an I/O device error.’

The three are the most common I/O device error messages, and each code refers to a specific issue with the device.

Affected Hardware Devices and Media

  • Hard Drives and SSDs (external)
  • SD cards— Micro SD, Compact Flash, SDHC, SDXC cards
  • Flash Drives— Pen Drives
  • DVD drives— CD/DVD-ROM

How to fix Hard Drive Device I/O Error in Windows

There are a few troubleshooting options given below that you can use to fix the hard drive device I/O error. However, it’s generally recommended that you use a data recovery software to recover the trapped data first and then fix the error.

Step 1: Use Data Recovery Software

Using data recovery software will ensure data safety as your drive could get further damage during fix, which could lead to permanent data loss situation.

Follow these Steps to recover your data from a storage device with I/O device error:

a. Connect the storage media to the system
b. Download, install and run the Stellar Data Recovery software

Stellar

c. Select what data you want to recover and click ‘Next.
d. Select the storage media under ‘Connected Drives’ and click ‘Scan.’ In case the volume is not visible, click ‘Can’t Find Drive’ and click ‘Scan.

  • Choose your external media from the ‘Select Drive’ list and click ‘Search.
  • After the scan, partitions are visible under ‘Partitions Found’ list box. If the desired partition isn’t visible, click ‘Deep Scan.
  • Select the partition from ‘Partition Found’ list box and click ‘Scan.

e. After the scan, results are displayed in the left Tree View pane
f. Click to expand folder tree and preview a file
g. Select the files you wish to recover and click on the ‘Recover’ button

TIP: Use search and filter option to locate files quickly

h. Click ‘Browse’ and select a save location on a different drive volume
i. Click ‘Start Saving’ and wait for the software to save selected files at your desired location

After recovery is done and you have retrieved the necessary data, go ahead and try the below-mentioned methods to fix the hard drive device I/O error without worrying about further damage to the data or drive.

Step 2: Fixing the I/O Error

1. Check the Connection

If you can physically access the drive, check for the firmness of connection between the motherboard and the hard drive. Inspect the connector and the connecting wires thoroughly. If you have a spare cable, try replacing the existing one.

For laptop owners, it can be hazardous especially if you have never disassembled your laptop. So, we recommend laptop owners to contact a professional consultant for this.

2. Reinstall Drivers

You can check for driver corruption with Device Manager in Windows. Follow these steps to access Device Manager and fix device driver:

  • Press Windows+R, type devmgmt.msc and press ‘Enter.’
  • Look for the connected drive under Disk Drives or Universal Serial Bus Controllers
  • Right-click on the connected device and click Uninstall device
  • Click ‘Uninstall’ to confirm and then restart the system after uninstallation is done

Stellar

As soon as the system restarts, it will automatically install the new device drivers and may probably fix the hard drive device I/O error

3. Reset BIOS

The method could fix the issue by resetting the factory defaults in your UEFI firmware. To reset BIOS in order to fix the hard drive device I/O error, follow these steps:

  • Shutdown your PC and then press the Power ON button
  • Immediately start pressing BIOS key, usually F1/F2/F10/DEL/ESC
  • After entering the BIOS, look for the setup defaults, Factory defaults, or similar option and reset the BIOS
  • Exit the BIOS and restart the system
    If this doesn’t work, proceed to the next.

4. Connect to a Different PC

In some rare occasions, your USB port could be faulty, or the external USB enclosure might be damaged. To know whether the drive is damaged or enclosure is faulty, connect the device to another Windows PC.

5. Contact Hardware Manufacturer

Get in touch with your hardware manufacturer when you are not able to fix the error, and the device is still under warranty. They mostly replace the existing device with a new one. Therefore, if the storage media contains critical data, it’s recommended that you reach out to a data recovery expert first, get your data retrieved and then get a replacement from your device manufacturer.

Conclusion

Data loss due to issues like the hard drive device I/O error is inevitable. The error is mostly related to external storage media such as SD cards, Flash drives, and external hard drives, etc. Thus, you should always be prepared with proper backup to tackle such critical errors.

In this blog, we discussed a few methods that can help you solve the I/O device error. When the fixes don’t work, you can always reach out to your device manufacturer for a replacement or fix (if the device is under warranty). But keep in mind that your manufacturer is not liable to get your data recovered. Therefore, you need the best Windows data recovery software such as Stellar Data Recovery Standard to restore critical data from a logically damaged media. Later you can fix the issue either by using the methods mentioned above or getting a replacement or fix directly from the manufacturer.

About The Author

Aruna

Aruna Attri is a Senior Data Recovery Expert at Stellar®. She is a technology blogger and Windows expert. She has experience in Windows data recovery domain. She loves to troubleshoot Windows issue and write technical tips and tutorials.

Best Selling Products

Stellar Data Recovery Professional

Stellar Data Recovery Professional

Stellar Data Recovery Professional softw

Read More

Stellar Data Recovery Premium

Stellar Data Recovery Premium

Stellar Data Recovery Premium for Window

Read More

Stellar Data Recovery Technician

Stellar Data Recovery Technician

Stellar Data Recovery Technician intelli

Read More

Stellar Data Recovery Toolkit

Stellar Data Recovery Toolkit

Stellar Data Recovery Toolkit is an adva

Read More

В сегодняшней статье:

1. Как узнать в каком состоянии мой жёсткий диск или твердотельный накопитель SSD, сколько он ещё проживёт. Как узнать состояние здоровья жёсткого диска или SSD бывшего в употреблении. Что такое  S.M.A.R.T и о чём говорят его показатели: Value, Worst, Raw, Threshold? 

2. Что такое бэд-блоки? Как установить — сколько сбойных секторов (бэд-блоков) на моём жёстком диске, можно ли их исправить, а самое главное, как исправить?

3. Что делать, если операционная система не загружается или зависает даже после переустановки, а жёсткий диск при работе издаёт щелчки и посторонние звуки? Почему каждый раз при загрузке Windows запускается утилита проверки диска chkdsk?

4. Как создать загрузочную флешку с программой Victoria и проверить жёсткий диск компьютера, ноутбука на бэд-блоки даже если он не загружается и так далее…

Как пользоваться одной из легендарных программ по диагностике жёстких дисков под названием Victoria!

Приветствую Вас друзья на нашем сайте remontcompa.ru! Сегодняшняя статья о программе Victoria. Скажу уверенно, данная программа самая лучшая среди утилит по диагностике и лечению жёстких дисков. Разработал сиё творение чародей первой категории Сергей Казанский.

Я  очень долго и ответственно готовился к данной статье чувствуя благодарность к этой программе. Бывало Victoria спасала казалось бы уже пропавшие данные на жёстких дисках моих клиентов, друзей и знакомых (часто перед мастером НЕ стоит задача вернуть к нормальной работе неисправный жёсткий диск, а только спасти данные находящиеся на нём), а иногда возвращала к жизни и сам винчестер!

  • Очень хотелось написать статью, которая помогла бы начинающим пользователям разобраться, а главное не боятся этой программы, а боятся есть чего, если пользоваться программой неосторожно, к примеру запустить бездумно сканирование в режиме Erase или ещё хуже Write , то можно удалить все данные на винте, если вы даже вовремя опомнитесь, то всё равно грохните загрузочную запись MBR и Вам не удастся в следующий раз загрузиться в операционную систему.

Друзья, невозможно всё, что я хочу рассказать и показать о программе Victoria поместить в одну статью. В результате моих стараний получилось несколько статей:

  1. Сегодняшняя статья. Как скачать и запустить прямо из работающей Windows программу Victoria. Что такое S.M.A.R.T. или как за пару секунд определить состояние здоровья Вашего жёсткого диска или SSD. Ещё статьи…
  2. Как произвести тест жёсткого диска или твердотельного накопителя SSD на наличие сбойных секторов (бэд-блоков) в программе Victoria для Windows. Как вылечить жёсткий диск.
  3. Как создать загрузочную флешку с программой Victoria, загрузить с неё компьютер или ноутбук (если они не загружаются нормально из-за сбойных секторов) и протестировать поверхность жёсткого диска на бэд-блоки. Как избавиться от бэд-блоков в DOS (ДОС) режиме.
  4. Как с помощью программы Victora произвести посекторное стирание информации с жёсткого диска и этим избавиться от сбойных секторов (бэд-блоков).
  5. Как обрезать на жёстком диске участок со сбойными секторами.
  6. Как установить точный адрес сбойного сектора в программе Victoria и исправить этот сектор.
  7. Как сопоставить принадлежность сбойного сектора (бэд-блока) конкретному файлу в Windows?
  8. Как избавить жёсткий диск ноутбука от бэд-блоков в программе Victoria
  9. Загрузочная флешка Live CD AOMEI PE Builder с программами для диагностики жёсткого диска: Victoria, HDDScan, CrystalDiskInfo 6.7.4, DiskMark, HDTune, DMDE

Во первых, основных версий программы Victoria две:

Первая версия позволит нам произвести диагностику и небольшой ремонт жёстких дисков прямо в работающей Windows, но хочу сказать, что диагностику винчестера с помощью этой версии произвести можно, а вот исправление сбойных секторов (ремап) часто заканчивается неудачей, да и вероятность ошибок при работе с Викторией прямо «из винды» присутствует, поэтому многие опытные пользователи и профессионалы предпочитают вторую версию программы.

Вторая версия программы Victoria будет находиться на загрузочном диске или флешке, с данного диска (флешки) мы загрузим наш стационарный компьютер или ноутбук и также проведём диагностику и если нужно лечение жёсткого диска.

Примечание: Вторая версия очень пригодится многим, так как у большинства пользователей один жёсткий диск в компьютере или тем более в ноутбуке, в этом случае можно загрузиться с диска (флешки) Виктории и работать с одним единственным винчестером.

1. Victoria на загрузочном диске очень пригодится, если из-за бэд блоков Вы не можете запустить операционную систему.

2. Если у Вас один жёсткий диск и на нём установлена операционная система и в этой же работающей операционке Вы запустите Викторию, то наверняка она откажется исправлять сбойные сектора (бэд-блоки).

Многие пользователи заметят, что зачастую хороший бэд не исправит даже Виктория, на что ответить можно так — не все бэды имеют физическую природу (разрушившийся сектор на жёстком диске), многие бэды имеют логическую природу и легко исправляются этой программой.

Примечание: все подробности о существующих бэд-блоках винчестеров, какие они бывают, логические или физические, читайте в нашей статье- Как проверить состояние жесткого диска.

Коротко лишь скажу, что физические бэды (физически разрушившийся сектор) восстановить невозможно, а логические (программные, ошибки логики сектора) восстановить можно. 

Друзья, можно много говорить, но есть хорошая жизненная пословица: «Лучше один раз увидеть, чем сто раз услышать», поэтому я приведу для Вас несколько примеров работы программы Victoria.

Victoria для работы с загрузочного диска

Идём на официальный сайт программы и выбираем Victoria 3.5 Russian ISO-образ загрузочного CD-ROM.

Victoria на загрузочном диске нам тоже нужна, но работу с этой версией мы рассмотрим во вторую очередь. Если у Вас нет дисковода, тогда мы сделаем загрузочную флешку с программой Victoria.

Victoria для работы непосредственно в операционной системе Windows XP, 7, 8, 10

Также скачиваем на моём облаке версию для Windows. 

Щёлкаем на скачанном архиве программы правой мышью и выбираем Извлечь файлы. 

 

Файлы извлекаются в создавшуюся папку vcr43. Заходим в эту папку и обязательно запускаем от имени администратора исполняемый файл программы victoria43.exe.

Главное окно программы Victoria 

В главном окне программы пройдёмся по всем вкладкам поверхностно, а затем подробно.

Standard

Выбираем начальную вкладку Standard. Если у Вас несколько жёстких дисков, то в правой части окна выделите левой мышью нужный Вам жёсткий диск и сразу в левой части окна отобразятся паспортные данные нашего жёсткого диска: где родился и женился, модель, прошивка, серийный номер, объём кэша и так далее. В нижней части ведётся лог наших действий.

Что такое S.M.A.R.T.

Затем выбираем в правой части окна нужный нам жёсткий диск, если у Вас их несколько и выделяем его левой мышью. Выберем к примеру жёсткий диск WDC WD5000AAKS-00A7B2(объём 500 ГБ). 

Переходим на вкладку SMART, жмем кнопку Get SMART, справа от кнопки засветится сообщение GOOD и откроется S.M.A.R.T. выбранного нами жёсткого диска.

S.M.A.R.T. (от англ. self-monitoring, analysis and reporting technology) — разработанная в 1995 году крупнейшими производители жёстких дисков усовершенствованная технология самоконтроля, анализа и отчётности винчестера.

Другими словами друзья, если посмотреть это окно, то можно узнать в каком состоянии Ваш жёсткий диск.

Обратите внимания программа Victoria подсветила красным (тревога!) цифру на значении Raw, самого важного для здоровья жёсткого диска атрибута 

Reallocated Sector Count — (remap), обозначающий число переназначенных секторов. 

Примечание: значение атрибута Raw очень важно, читаем почему.  

Простыми словами, если микропрограмма, встроенная в жёсткий диск, обнаружит сбойный сектор (бэд-блок), то она переназначит этот сектор сектором с резервной дорожки (процесс называется remapping). Но резервных секторов на жёстком диске не бесконечное число и программа нас предупреждает, что скоро бэд-блоки переназначать будет нечем, а это чревато потерей данных и нам надо готовиться менять жёсткий диск на новый. Забегая вперёд, скажу, что в следующей статье мы попробуем подлечить этот жёсткий диск.

9 Power-On time — общее количество отработанных жёстким диском часов 14810, не подсвечено красным, но хочу сказать, что приближение к цифре 20000 наработки в большинстве случаев связано с болезнями и нестабильной работой жёсткого диска.

Также подсвечены атрибуты:

196 Reallocation Event Count3. Количество операций переназначения бэд-блоков секторами с резервных дорожек (ремаппинг), учитываются как успешные, так и неуспешные операции.

197 Current Pending Sector13. Показатель количества нестабильных секторов реальных претендентов в бэд-блоки. Данные сектора микропрограмма жёсткого диска планирует в будущем заменить секторами из резервной области (remap), но всё же есть надежда, что в дальнейшем какой-то из этих секторов прочитается хорошо и будет исключён из списка претендентов.

198 Offline scan UNC sectors13. Количество реально существующих на жёстком диске не переназначенных бэдов (возможно исправимых имеющих логическую структуру — подробности далее в статье).

199 UltraDMA CRC Errors63771. Ошибки, возникающие при передаче информации по внешнему интерфейсу, причина — возможно перекрученный и некачественный SATA шлейф и его нужно заменить или расшатанный разъём SATA на материнской плате или на самом жёстком диске. А может сам винчестер интерфейса SATA 6 Гбит/с подключен в разъём на материнской плате SATA 3 Гбит/с, надо переподключить.

Атрибуты S.M.A.R.T и их значения. Очень важно знать!

Значения атрибутов

Val—текущее значение атрибута, оно должно быть высоким (до 255), если значение Val равно критическому Tresh или даже менее его, то это соответствует неудовлетворительной оценке параметра. К примеру в нашем случае на жёстком диске WDC WD5000AAKS-00A7B2  (500 ГБ, 7200 RPM, SATA-II) атрибут Reallocated Sector Count имеет значение Val199, а атрибут Tresh (порог) имеет значение 140, это плохо, но значение Val199 ещё не равно значению Tresh (порог) 140 и у нас есть время скопировать данные с этого диска и отправить его на пенсию.

Wrst—самый низкий показатель атрибута Val за всё время работы винчестера.

Tresh—пороговое значения атрибута, данное значение должно быть намного ниже значения Val (текущее значение).

Raw«сырое значение», которое будет пересчитано в значение Value, чем меньше это значение, тем лучше. Важный показатель для оценки атрибута, представляет реальное число, исходя из которого формируется значение Value, но как именно происходит процесс формирования значения Value — это фирменный секрет каждого производителя жёсткого диска!

Расшифровка S.M.A.R.T.

Давайте разберёмся во всех атрибутах S.M.A.R.T, но хочу сказать, что чаще всего на «плохих» жёстких дисках неудовлетворительным будет именно этот атрибут Reallocated Sector Count (Переназначенные сектора). Это уже повод насторожиться и провести тест поверхности жёсткого диска или SSD (как это сделать узнаем далее в статье).

Друзья, для моментальной оценки здоровья жёсткого диска S.M.A.R.T я использую ещё одну простую программу на русском языке CrystalDiskInfo, обязательно скачайте и установите её себе. В ней все атрибуты указаны на русском языке! 

http://crystalmark.info/download/index-e.html

Выберите Shizuku Edition (exe).

В данном окне язык программы можете выбрать русский. 

Как видите, CrystalDiskInfo прямо указывает нам (подтверждая опасения «Виктории»), на жёстком диске WDC WD5000AAKS-00A7B2 (объём 500 ГБ) нехорошие значения атрибутов отвечающих за Переназначенные сектора, Нестабильные сектора, Неисправимые ошибки секторов, подсвечивая их жёлтым цветом и указывает на тех. состояние жёсткого диска одним словом «Тревога»

 

Как выглядит S.M.A.R.T неисправного жёсткого диска

А вот S.M.A.R.T неисправного жёсткого диска WDC WD500BPVT ноутбука, который мне принесли на ремонт.

Victoria из Windows. Обратите внимание на атрибут:

5 Reallocated Sector Count (переназначенные сектора), он имеет значение Val133, а атрибут Tresh (порог) имеет значение 140, это неудовлетворительно, так как значение Val133 не должно быть меньше предельного значения Tresh (порог) 140, то есть количество сбойных секторов будет расти, а переназначать их уже нечем, запасные сектора на резервных дорожках уже закончились.

197 Current Pending Sector — показатель количества нестабильных секторов реальных претендентов в бэд-блоки зашкалил все возможные пределы.

И самое главное, самооценка SMART status=BAD (непригоден).

Программа CrystalDiskInfo (ссылка на скачивание чуть выше). Видим тоже самое, атрибут Переназначенные сектора (Reallocated Sector Count) имеет значение Val (текущее)—133, а атрибут Tresh (порог) имеет значение 140, программа оценила оценку тех состояния жёсткого диска как Плохо.

этот ноутбук ужасно тормозит, данные c него невозможно скопировать, Windows невозможно переустановить, периодически винчестер пропадает из БИОС, то есть такой жёсткий диск подлежит замене без раздумий, даже наша Victoria не сможет полностью вылечить подобный винт, так как здоровые сектора на резервных дорожках закончились и сбойные сектора переназначать уже нечем, а копирование данных с него будет настоящим приключением на неделю (обязательно напишу про это статью).

Забегая вперёд скажу, что тест этого винта в программе Victoria показал наличие 500 неисправимых сбойных секторов (бэд-блоков).

ДОС — версия программы Виктория.

Примечание: Чтобы Вам упростить жизнь, некоторые программы диагностики жёстких дисков сопоставляют каждый атрибут, хороший он или плохой, цвету значка.

Зелёный—атрибут жёсткого диска соответствует нормальному.

Жёлтый—говорит о небольшом расхождении с эталоном и на этом винте важные данные лучше не хранить, если у Вас на таком жёстком диске находится Windows, перенесите её на SSD.

Красный—говорит о значительном расхождении с эталоном и жёсткий диск нужно было менять уже вчера.

S.M.A.R.T этого же жёсткого диска WDC WD500BPVT в программе HDDScan 

Атрибуты

001 Raw Read Error Rate—частота ошибок при чтении информации с диска

002 Spinup Time—время раскрутки дисков до рабочего состояния 

003 Start/Stop Count—общее количество стартов/остановок шпинделя.

005 Reallocated Sector Count — (remap) говорит о числе переназначенных секторов. Если микропрограмма встроенная в жёсткий диск обнаружит сбойный сектор (бэд-блок), то она переназначит этот сектор сектором с резервной дорожки (процесс называется remapping). Но резервных секторов на жёстком диске не бесконечное число и программа нас предупреждает, что скоро бэд-блоки переназначать будет нечем, а это чревато потерей данных и нам надо готовиться менять жёсткий диск на новый

007 Seek Error Rate—частота ошибок при позиционировании блока головок, постоянно растущее значение, говорит о перегреве винчестера и неустойчивом положении в корзине, к примеру плохо закреплён. 

009 Power-on Hours Count—число часов, проведённых во включенном состоянии.

010 Spin Retry Count—число повторных раскруток диска до рабочей скорости при неудачной первой.

012 Device Power Cycle Count—Число полных циклов включения-выключения дисков

187 Reported Uncorrectable Error—Ошибки, которые не не смогла восстановить микропрограмма винчестера, используя свои методы устранения ошибки аппаратными средствами, последствия перегрева и вибрации.

189 High Fly Writes—записывающая головка находилась над поверхностью выше, чем нужно, а значит магнитное поле было недостаточным для надежной записи носителя. Причина– вибрация (удар).

Для ноутбуков данная цифра немного выше. 

190 Важные параметры касающиеся температуры. Важно, что бы температура не поднималась выше 45 градусов.

194 HDA Temperature—температура механической части жёсткого диска 

195 Hardware ECC Recovered—число ошибок, которые были исправлены самим винчестером.

196 Reallocation Event Count — Количество операций переназначения бэд-блоков секторами с резервных дорожек (ремаппинг), учитываются как успешные, так и неуспешные операции. 

197 Current Pending Errors Count — неисправимые ошибки секторов, тоже важный параметр, число секторов, считывание которых затруднено и сильно отличается от считывания нормального сектора. То есть, эти секторы контроллер жёсткого диска не смог прочитать с первого раза, обычно к данным секторам принадлежат софт-бэды, ещё называют программные или логические бэд-блоки (ошибка логики сектора) — при записи в сектор пользовательской информации, так же записывается служебная информация, а именно контрольная сумма сектора ECC (Error Correction Code-код коррекции ошибок), она позволяет восстанавливать данные, если они были прочитаны с ошибкой, но иногда данный код не записывается, а значит сумма пользовательских данных в секторе не совпадает с контрольной суммой ECC. К примеру так происходит при внезапном отключении компьютера из-за сбоев с электричеством, из-за этого информация в сектор жёсткого диска была записана, а контрольная сумма нет.

  • Логические бэд-блоки нельзя исправить простым форматированием, так как при форматировании контроллер жёсткого диска попытается в первую очередь прочитать информацию из сбойного сектора, если ему это не удастся (в большинстве случаев), то значит не произойдёт никакой перезаписи и бэд-блок останется бэд-блоком. Исправить положение можно в программе Victoria, она принудительно впишет в сектор информацию (вылечит сектор), затем прочитает её, сравнит контрольную сумму ECC и бэд-блок станет нормальным сектором. Более подробно про все виды бэд-блоков в нашей статье Как проверить жёсткий диск.

198 Offline scan UNC sectors — Количество реально существующих на жёстком диске непереназначенных бэдов (возможно исправимых имеющих логическую структуру — подробности далее в статье).

198 Uncorrectable Errors Count—число нескорректированных ошибок при обращении к сектору, указывает на дефекты поверхности.

Reported Uncorrectable Errors — показывает число неисправленных сбойных секторов.

199 UltraDMA CRC Errors—число ошибок, возникающих при передаче информации по внешнему интерфейсу, причина- перекрученный и некачественный SATA шлейф, возможно его нужно поменять.

200 Write Error Rate—частота ошибок, происходящих при записи на винчестер, по данному показателю обычно судят о качестве поверхности накопителя и его механической части.

202 Data Address Mark Errors—расшифровки нигде не встречал, буквально Ошибка данных адресного маркера, означать может то, что знает один лишь производитель данного винчестера.

Как быстро проверить жёсткий диск или SSD на пригодность к работе?

Друзья, Вы меня часто спрашиваете: «Как быстро проверить жёсткий диск или SSD на пригодность к работе?»

Ответ: «Используйте программы: Victoria, CrystalDiskInfo, HDDScan, они сразу покажут Вам S.M.A.R.T любого жёсткого диска.

Как выглядит S.M.A.R.T абсолютно нового жёсткого диска

Во первых, смотрите как выглядит S.M.A.R.T абсолютно нового жёсткого диска WDC WD2500AAKX-00ERMA0

Как видим, все показатели накопителя в отличном состоянии и отработал он ноль часов (параметр 9 Power-On Time)

Теперь берём почти новый жёсткий диск WDC WD2500AAKX-001CA0 и смотрим S.M.A.R.T, как видим, винчестер практически в идеальном состоянии, хотя и отработал уже 8000 часов (параметр 9 Power-On Time)

Victoria 

Тест поверхности жёсткого диска!

В правой части окна программы отметьте пункт Ignor и пункт read и нажмите Start. Этим Вы запустите простой тест поверхности жёсткого диска без исправления ошибок. Данный тест не принесёт никаких отрицательных и положительных воздействий на жёсткий диск, но зато по окончании теста Вы будете знать в каком состоянии находится Ваш винчестер..

Результаты теста отличные. Ни одного блока с задержкой более 30 мc!

CrystalDiskInfo

HDDScan

Жёсткий диск SAMSUNG HD403LJ (372 ГБ) из недавней статьи Как перенести Windows 7, 8, 8,1 на SSD с помощью программы Acronis True Image.

На нём были бэд-блоки и мне пришлось переносить с него Windows 8 на SSD, после успешного переноса, хозяин (мой одноклассник) подарил мне этот винт и Victoria вскоре вернула его к жизни после «записи по всей поляне» (алгоритм Write). Прежний хозяин забирать вылеченный винчестер отказался. 

Результаты теста чуть хуже. 3 блока с задержкой более 200 мс и 1 блок с задержкой 600 мс (возможно кандидат в бэды).

Не вполне исправный жёсткий диск MAXTOR STM3250310AS  (250 ГБ, 7200 RPM, SATA-II) ему 8 лет (ветеран) и он всё ещё работает, правда я его берегу, храню на нём только файлы неважных данных.

Хоть явных бэдов на нём и нет, видим, что атрибут 5 Reallocated Sector Count — (remap), обозначающий число переназначенных секторов критический и скоро бэды переназначать будет нечем.

9 Power-On time — общее количество отработанных жёстким диском часов 23668, это очень много, обычно проблемы у жёстких дисков начинаются после 20000 часов отработки.

Также неважнецкий атрибут 199 UltraDMA CRC Errors — 63771,ошибки, возникающие при передаче информации по внешнему интерфейсу, причина — некачественный шлейф SATA шлейф и его нужно заменить (не всегда дело в этом). 

Результаты теста ещё хуже. 71 блок с задержкой более 200 мс и 1 блок с задержкой 600 мс (возможно кандидат в бэды).

Жёсткий диск ST3200826AS (200 ГБ, 7200 RPM, SATA). Винту около трёх лет и полёт пока нормальный.

Результаты теста. 6 блоков с задержкой более 200 мс.

Новый твердотельный накопитель SSD SPCC SSD162 

Тест

Под конец статьи проверим мой самый старый твердотельный накопитель SSD — ADATA S510 60GB (60 ГБ, SATA-III)

Ему уже третий год, но работает он отменно, жалко что объём всего 60 ГБ, но когда я его покупал больше и не было, а стоил он около двухсот баксов.

dron44rus

0 / 0 / 0

Регистрация: 29.11.2011

Сообщений: 45

1

19.03.2012, 21:26. Показов 48244. Ответов 8

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure Ttest1.Button2Click(Sender: TObject);
var f: textfile;
begin
 
AssignFile(f1,'users'+log+''+log+'v1.txt'); // привязка названия к переменной
{$I-}
Rewrite(F1); // 
{$I+}
WriteLn(f1,inttostr(radiogroup1.ItemIndex)); // запись в файл строки с символами перевода строки
WriteLn(f1,inttostr(radiogroup2.ItemIndex));
WriteLn(f1,inttostr(radiogroup3.ItemIndex));
WriteLn(f1,inttostr(radiogroup4.ItemIndex));
WriteLn(f1,inttostr(radiogroup5.ItemIndex));
CloseFile(f1); // закрыть файл

вот в этой части проекта выдает ошибку IO error 103.Что это и как исправить?



0



Psilon

Master of Orion

Эксперт .NET

6095 / 4951 / 905

Регистрация: 10.07.2011

Сообщений: 14,522

Записей в блоге: 5

19.03.2012, 21:48

2

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure Ttest1.Button2Click(Sender: TObject);
var f: textfile;
begin
 
AssignFile(f1,'users'+log+''+log+'v1.txt'); // привязка названия к переменной
Try
   Rewrite(F1); 
Except 
   Showmessage('Какая-то ошибка, вообще не понимаю, зачем для rewrite нужны какие-то проверки');
   exit;
end;
WriteLn(f1,inttostr(radiogroup1.ItemIndex)); // запись в файл строки с символами перевода строки
WriteLn(f1,inttostr(radiogroup2.ItemIndex));
WriteLn(f1,inttostr(radiogroup3.ItemIndex));
WriteLn(f1,inttostr(radiogroup4.ItemIndex));
WriteLn(f1,inttostr(radiogroup5.ItemIndex));
CloseFile(f1); // закрыть файл

Если не поможет, запускайте через F9 и смотрите, в какой строке вылетает. Если не поймете в какой, то ставьте брекпоинт на начало процедуры и F8-stepover’ом ищите.



0



21 / 21 / 4

Регистрация: 30.01.2011

Сообщений: 119

19.03.2012, 22:11

3

dron44rus, точно не помню, но rewrite открывает файл, а если файл не существует



0



Master of Orion

Эксперт .NET

6095 / 4951 / 905

Регистрация: 10.07.2011

Сообщений: 14,522

Записей в блоге: 5

19.03.2012, 22:12

4

Славик___077, ошибаетесь, если файла не существует, то он создается.



0



36 / 36 / 8

Регистрация: 10.11.2011

Сообщений: 94

19.03.2012, 22:20

5

Psilon, а путь к файлу users’+log+»+log тоже чтоль создается?



0



0 / 0 / 0

Регистрация: 29.11.2011

Сообщений: 45

19.03.2012, 22:23

 [ТС]

6

Цитата
Сообщение от ББК
Посмотреть сообщение

Psilon, а путь к файлу users’+log+»+log тоже чтоль создается?

файлы создаются в папке юзеры,которая тоже создается сама.Создается в том же каталоге где и сама программа



0



Psilon

Master of Orion

Эксперт .NET

6095 / 4951 / 905

Регистрация: 10.07.2011

Сообщений: 14,522

Записей в блоге: 5

19.03.2012, 22:27

7

dron44rus, нет, папка не создается, создается только файл. Поэтому сделайте сначала вызовите

Delphi
1
ForceDirectories('users'+log+''+log);

а потом попробуйте опять. (уже без try except.



0



dron44rus

0 / 0 / 0

Регистрация: 29.11.2011

Сообщений: 45

19.03.2012, 22:37

 [ТС]

8

Цитата
Сообщение от Psilon
Посмотреть сообщение

dron44rus, нет, папка не создается, создается только файл. Поэтому сделайте сначала вызовите

Delphi
1
ForceDirectories('users'+log+''+log);

а потом попробуйте опять. (уже без try except.

не получается.Ну я тебе скинул,надеюсь поможешь.В долгу не останусь



0



Master of Orion

Эксперт .NET

6095 / 4951 / 905

Регистрация: 10.07.2011

Сообщений: 14,522

Записей в блоге: 5

19.03.2012, 23:28

9

В общем смотри: попробуй при выполнении ДО assignfile сделать пометку в файле. (например, добавить текст или переименовать). Он скажет что «файл занят другим процессом». Поэтому и не работает привязка. Где-то ты не освободил файл.



0




Форум программистов Vingrad

Модераторы: Poseidon, Snowy, bems, MetalFan

Страницы: (2) Все [1] 2 
( Перейти к первому непрочитанному сообщению )

Поиск:

Ответ в темуСоздание новой темы
Создание опроса
> I/O Error 103, хотя файл есть 

:(

   

Опции темы

TDM
Дата 10.4.2008, 23:04 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.2.2006
Где: SPB

Репутация: нет
Всего: нет

Все программы которые открываю открывающие файл через reset падают этой ошибкой, непойму в чём дело, раньше всё было нормально. Открываемый файл есть. Интересно что возникает ошибка только если оспользовать глобальные пути.
Вот код который не работает:

Код

var
 f    : TextFile;
begin
  AssignFile(f, 'c:model.txt');
  Reset(f);

А этот работает:

Код

var
 f    : TextFile;
begin
  AssignFile(f, 'model.txt');
  Reset(f);

PM MAIL ICQ   Вверх
WaReZMEN
Дата 11.4.2008, 00:31 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3

TDM, может C  По русский написал? А еще может прав нет на диск….

PM MAIL ICQ   Вверх
TDM
Дата 11.4.2008, 00:52 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.2.2006
Где: SPB

Репутация: нет
Всего: нет

путь пишет openDialog,
если нет прав то почему TFileStream всё читает и пишет?

PM MAIL ICQ   Вверх
Данкинг
Дата 11.4.2008, 01:12 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130

Цитата(TDM @ 11.4.2008,  00:04)
раньше всё было нормально. 

А что изменилось с тех пор, когда было нормально? ИМХО надо в этом разобраться, так как в двух строчках ошибки быть не может, да и нет там её.

———————

There’s nothing left but silent epitaphs.

PM MAIL WWW   Вверх
TDM
Дата 11.4.2008, 01:22 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.2.2006
Где: SPB

Репутация: нет
Всего: нет

Данкинг
Купил новый комп, вот и всё собственно. Винда та же. Если грузить файл через TStringList то всё почти нормально.

PM MAIL ICQ   Вверх
Wolfgan
Дата 11.4.2008, 04:43 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 21
Регистрация: 20.3.2008

Репутация: нет
Всего: нет

Попробуй поставить дерективу компилятора перед началом чтения.

Код

  {$I-}
  Reset(f); 
  {$I+}

Советую почитать про дериктивы, много нового узнаешь. Это отключает/включает системную проверку на файловый ввод/вывод. У меня как то тоже была такая трабла. В чем прикол я не понял , но деректива помогла. 

Это сообщение отредактировал(а) Wolfgan — 11.4.2008, 04:50

PM MAIL   Вверх
Poseidon
Дата 11.4.2008, 08:34 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Delphi developer
****

Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133

Цитата(TDM @  11.4.2008,  00:52 Найти цитируемый пост)
путь пишет openDialog,

А по-моему пусть задан в ручную и openDialog’ом вообще не пахнет! И не NTFS там случаем? Права на файл есть? Может c:model.txt и model.txt вообще разные файлы?

———————

Если хочешь, что бы что-то работало — используй написанное, 
если хочешь что-то понять — пиши сам

PM MAIL ICQ   Вверх
[email protected]
Дата 11.4.2008, 10:04 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 72
Регистрация: 15.8.2007

Репутация: нет
Всего: нет

  Ошибка 103 выдается на   CloseFile, Read, Write, Seek, Eof, FilePos, FileSize, Flush, BlockRead, BlockWrite.
  На Reset, Rewrite выдается ошибка 102.
  Так сказано в Help.

PM MAIL   Вверх
Wolfgan
Дата 11.4.2008, 11:28 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 21
Регистрация: 20.3.2008

Репутация: нет
Всего: нет

А что тебе мешает эти функции в директиву занести? Хотя может трабла гдето в другом месте. Давно было это не вспомню ща как решил проблему.  Я примерно так делал:

Код

var
  f: TextFile; // файл
  fName: String[80]; // имя файла
  buf: string[80]; // буфер для чтения из файла
begin
  {$!-}
  fName := Edit1.Text; 
  AssignFile(f, fName);
  Reset(f); // открыть для чтения

    if IOResult <> 0 then
  begin
    MessageDlgt 'Ошибка доступа к файлу ' + fName,
      mtError, [mbOk], 0); exit;
  end;

  // чтение из файла
  while not EOF(f) do
  begin
    readln(f, buf); // прочитать строку из файла
    Memo1.Lines.Add(buf); // добавить строку в поле Memo1
  end;

  CloseFile(f); // закрыть файл
{$I+}

PM MAIL   Вверх
SlaUr
Дата 11.4.2008, 13:53 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 408
Регистрация: 18.9.2003

Репутация: 3
Всего: 5

Может файл уже кем-то ипользуется ?
Попробуйте перед Reset :

Код

FileMode:=0

и посмотрите все таки ioresult:

Код

{$I-}Reset(F2){$I+};
ShowMessage(IntToStr(IOResult));

Это сообщение отредактировал(а) SlaUr — 11.4.2008, 13:55

PM MAIL   Вверх
TDM
Дата 11.4.2008, 14:16 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.2.2006
Где: SPB

Репутация: нет
Всего: нет

Файл никем не используется, в другом месте трабл нет, куча прог которые раньше работали с использованием reset сейчас выдают ошибку 103
Poseidon
Путь задаёт opendialog просто тут я написал вручную. Система именно NTFS а что?

[email protected]
А у меня компилятор на reset ругается, странно

SlaUr
IOResult = 103

Wolfgan
Если отключить вывод ошибок то тогда всё работает. Очень интересно почему.

PM MAIL ICQ   Вверх
SlaUr
Дата 11.4.2008, 14:30 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 408
Регистрация: 18.9.2003

Репутация: 3
Всего: 5

Цитата
Путь задаёт opendialog просто тут я написал вручную

А вы попробуйте так как вначале написали — явно указать путь ,без opendialoga

Или проверьте 

Код

ShowMessage(opendialog1.FileName)

PM MAIL   Вверх
[email protected]
Дата 11.4.2008, 14:35 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 72
Регистрация: 15.8.2007

Репутация: нет
Всего: нет

А на этом файлике случайно атрибут «Только чтение» не стоит?

PM MAIL   Вверх
TDM
Дата 11.4.2008, 14:39 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.2.2006
Где: SPB

Репутация: нет
Всего: нет

SlaUr
Думаешь я не пробовал? Кароче поверь файл есть и путь правильный

PM MAIL ICQ   Вверх
[email protected]
Дата 11.4.2008, 14:58 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 72
Регистрация: 15.8.2007

Репутация: нет
Всего: нет

А попробуй запустить на выполнение не из среды Delphi, а из скомпилинного exe. Может файлик сама Dephi держит!

PM MAIL   Вверх



















Страницы: (2) Все [1] 2 

Ответ в темуСоздание новой темы
Создание опроса
Правила форума «Delphi: Общие вопросы»
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) — крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »

  • Ошибка ввода вывода на usb флешке
  • Ошибка ввода вывода 0хс000009с
  • Ошибка ввода вывода на ssd как исправить невозможно инициализировать диск
  • Ошибка ввода вывода 0х8007045d
  • Ошибка ввода вывода диск не проинициализирован что делать