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

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2010, 06:17   #1
katttes
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 33
По умолчанию Работа с текстовыми файлами. Ошибка 105

У меня возникла следующая проблема:
На одной форме я создаю тексовый файл и записываю в него пути к файлам с вопросами и ответами:

procedure TForm4.FormShow(Sender: TObject);
var
h:integer;
begin
k:= GetCurrentDir+'\conf_testing.txt';
h:=FileCreate(k);
SetFileAttributes(PAnsichar(k), FILE_ATTRIBUTE_HIDDEN);
FileClose(h);

procedure TForm4.BitBtn1Click(Sender: TObject);
var
f:TextFile;
e1,e2:string;
begin
e1:=AnsiString(edit1.Text);
e2:=AnsiString(edit2.Text);
if (edit1.Text='') or (edit2.Text='') then
ShowMessage('Âû ââåëè íå âñå íàñòðîéêè!')
else
begin
AssignFile(f,k);
Append(f);
writeln(f,e1);
writeln(f,e2);
CloseFile(f);
form1.Button3.Visible:=false;
form1.Label6.Caption:='';
form1.Edit1.Enabled:=true;
form1.Edit2.Enabled:=true;
form1.Edit3.Enabled:=true;
form1.Edit4.Enabled:=true;
form1.Edit5.Enabled:=true;
form1.Button1.Enabled:=true;
form1.Button2.Enabled:=true;
form4.Close;
end;
end;

Затем на другой форме я считываю пути к файлам, открываю их что то записываю:

procedure TForm1.Button2Click(Sender: TObject);
var
f:TextFile;
l,buf:string;
begin
l:= GetCurrentDir+'\conf_testing.txt';
if FileExists(l) then
begin
AssignFile(f,l);
Reset(f);
Read(f,buf);
p1:=buf;
readln(f);
Read(f,buf);
r1:=buf;
CloseFile(f);
end;
unit3.po:=p1;
unit3.ro:=r1;
if (edit1.Text='Ââåäèòå ôàìèëèþ') or (edit2.Text='Ââåäèòå èìÿ') or (edit3.Text='Ââåäèòå îò÷åñòâî') or (edit4.Text='Ââåäèòå íîìåð ãðóïïû') or (edit5.Text='Ââåäèòå íîìåð çà÷åòíîé êíèæêè') then
begin
ShowMessage('Âû ââåëè íå âñå äàííûå!')
end
else
begin
surname:= edit1.Text;
_name:= edit2.Text;
patronymic:= edit3.Text;
group:=edit4.Text;
test_book:=edit5.Text;
AssignFile (f, r1);
Append(f);
writeln(f,'-------------------------------------------------------------------------------------------------');
writeln(f,' ');
writeln(f,' ');
writeln(f,'-------------------------------------------------------------------------------------------------');
write(f, 'Ô.È.Î. ñòóäåíòà: '+surname+' ');
write(f, _name+' ');
writeln(f, patronymic);
writeln(f, 'Íîìåð ãðóïïû: '+group);
writeln(f, 'Íîìåð çà÷åòíîé êíèæêè: '+test_book);
writeln(f,'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ');
writeln(f,'ÎÁÓ×ÅÍÈÅ');
writeln(f,'');
CloseFile(f);
form3.Edit1.Text:= surname;
Edit1.ReadOnly:= true;
Edit2.ReadOnly:= true;
Edit3.ReadOnly:= true;
Edit4.ReadOnly:= true;
Edit5.ReadOnly:= true;
button2.Enabled:=false;
form3.ShowModal;
end;
end;

В момент записи в файл информации программа вылетает и выдает ошибку 105.
С чем это может быть связано и как это устранить?
katttes вне форума Ответить с цитированием
Старый 15.06.2010, 06:19   #2
katttes
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 33
По умолчанию

Кстати ошибку выдает только в первый раз. После повторного запуска (с уже сохраненными путями) все работает нормально.
katttes вне форума Ответить с цитированием
Старый 15.06.2010, 08:12   #3
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Ну вот вы и ответили на свой вопрос. Делайте проверку на наличие такого файла (FileExists) или заключите загрузку файла в блок try except
или
Код:
AssignFile(f,filename);
{$I-}
Append(f) // открыть для добавления
{$I+}
if IOResult<> 0 // ошибка открытия
then Rewrite(f); // открыть для записи
// здесь открыт существующий или новый файл
SERG1980 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с текстовыми файлами galka_kiss Фриланс 18 24.02.2010 22:00
Работа с текстовыми файлами Gigabit Общие вопросы Delphi 3 19.02.2010 10:29
Работа с текстовыми файлами Bytas Общие вопросы C/C++ 1 01.12.2009 22:39
работа с текстовыми файлами Bayazet Общие вопросы Delphi 10 09.12.2008 18:39
ошибка 105 (при работе с типизированными файлами) sdp Общие вопросы Delphi 8 11.07.2007 11:12