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

Используйте вместо span.

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

blockquote>

.form__group {
  position: relative;
  padding: 15px 0 0;
  margin-top: 10px;
}

.form__field {
  font-family: inherit;
  width: 100%;
  border: 0;
  border-bottom: 1px solid #d2d2d2;
  outline: 0;
  font-size: 16px;
  color: #212121;
  padding: 7px 0;
  background: transparent;
  transition: border-color 0.2s;
}

.form__field::-webkit-input-placeholder {
  color: transparent;
}

.form__field:-ms-input-placeholder {
  color: transparent;
}

.form__field::-ms-input-placeholder {
  color: transparent;
}

.form__field::placeholder {
  color: transparent;
}

.form__field:placeholder-shown~.form__label {
  font-size: 16px;
  cursor: text;
  top: 20px;
}

.span-header,
.form__field:focus~.form__label {
  position: absolute;
  top: 0;
  display: block;
  transition: 0.2s;
  font-size: 12px;
  color: #9b9b9b;
}

.form__field:focus~.form__label {
  color: #009788;
}

.form__field:focus {
  padding-bottom: 6px;
  border-bottom: 2px solid #009788;
}

11
задан Oliver Giesen 23 August 2009 в 12:49
поделиться

7 ответов

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

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

2
ответ дан 3 December 2019 в 05:14
поделиться

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

3
ответ дан 3 December 2019 в 05:14
поделиться

Необходимо обычно помещать открытие файла перед попыткой попытки.. наконец:

if fileexists then
  append(..)
else
  rewrite(..);
try
  // do something with the file
finally
  CloseFile(..);
end;

и

AssignFile(lFile, AFileName);
Rewrite(lFile);
CloseFile(lFile);

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

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

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

3
ответ дан 3 December 2019 в 05:14
поделиться

Вы могли смотреть на случайную ошибку от чего-то еще скомпилированного в состоянии $I-?

1
ответ дан 3 December 2019 в 05:14
поделиться

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

1
ответ дан 3 December 2019 в 05:14
поделиться

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

0
ответ дан 3 December 2019 в 05:14
поделиться

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

{$IFOPT I-}

if IOResult <> 0 then
begin
  // Error handling
end;
{$ENDIF}

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

0
ответ дан 3 December 2019 в 05:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: