![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Unable to Write
basilcat © (2011-08-30 15:48:00)Мастера. Очень редко. Иногда раз в пять дней. Иногда сразу в первый день, а потом затишье неделю, но получаю ошибку Unable to write ... В принципе ошибка локализована. Я по мере отработки программы пишу в ини файл номера точек, которые появляются в PointNumbCurrent:TEdit. Время между записями разное, от 0,006 сек и выше:
[NachPoint]
NNKV=1605,1,999999 - 1605 меняется 1 - 999999. За диапазон не выходит :)
Проверяю перед тем как писать функцией, используется ли файл кем то другим (смогу ли я его открыть):
function FileStatus(const FileName: string): boolean;
var
F: TFileStream;
begin
try
F := TFileStream.Create(FileName, fmOpenReadWrite or fmShareExclusive);
try
Result := true;
finally
F.Free;
end;
except
Result := false;
end;
end;
Пишу стандартно:
N_NachKadr_Val:TValue;
procedure TValue.Writer;
var
IniFile:TIniFile;
begin
IniFile:=TIniFile.Create(IniFileName);
try
IniFile.WriteString(IniSection,IniName,inttostr(Value)+','+inttostr(min)+','+inttostr(max));
finally
IniFile.Free;
end;
end;
procedure Form_Aplication.PointNumbCurrentChange(Sender:TObject);
begin
...
{$I-}
if FileStatus(SKADR_Str) then
N_NachKadr_Val.Writer
{$I+}
...
end;
SKADR_Str:=ExtractFilePath(ParamStr(0))+'_point2.txt'; - имя с путём создаётся один раз во время инициализации при запуске приложения.
Пишется стандартно из модуля IniFile
procedure TIniFile.WriteString(const Section, Ident, Value: string);
begin
if not WritePrivateProfileString(PChar(Section), PChar(Ident),
PChar(Value), PChar(FFileName)) then
raise EIniFileException.CreateResFmt(@SIniFileWriteError, [FileName]);
end;
Что может быть причиной ошибки Unable to Write?
Inovet (2011-08-30 17:14:00) [41]> [4] basilcat (30.08.11 17:04)
> Пишет 5 дней нормально. Потом УПС... unable to write
Ты проверку FileStatus прикрутил для отлова ошибки или была изначально? Убери её.
basilcat (2011-08-30 17:04:00) [42]
> Попробуй открыть, только не надо сюда пихать стрим
Такое впечатление что вопрос не читали. Пишет 5 дней нормально. Потом УПС... unable to write. Идеи кроме умничаний есть. Стрим поставил в 7- попытке. До этого try ... хру и т.д.
Anatoly Podgoretsky (2011-08-30 16:53:00) [43]Попробуй открыть, только не надо сюда пихать стрим
basilcat (2011-08-30 16:24:00) [44]
> Это не проверка. Ini-файлы не "открываются" в Delphi-йском
> смысле.
Предложи по другому проверить не занят ли файл чем то (хотя к нему кроме меня и господа Бога никто не обращается априори)
Игорь Шевченко (2011-08-30 15:54:00) [45]
> Проверяю перед тем как писать функцией, используется ли
> файл кем то другим (смогу ли я его открыть):
Это не проверка. Ini-файлы не "открываются" в Delphi-йском смысле.