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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2012, 21:13   #1
Dexes
Пользователь
 
Регистрация: 27.12.2011
Сообщений: 86
По умолчанию Не открывает файл для чтения (I/O Error 32)

В FormCreate прописан следующий текст
Код:
  if not FileExists(S+TDUsers+TFPosts) then
    begin
      AssignFile(FPosts, S+TDUsers+TFPosts);
      ReWrite(FPosts);
      CloseFile(FPosts);
    end;
Где TDUsers и TFPosts - глобальные константы
При выполнении следующего кода
Код:
var
  S, Post: string;
  B: boolean;   
begin
  S := ExtractFileDir(ParamStr(0))+'\';
  AssignFile(FPosts, S+TDUsers+TFPosts);
  { (!!!) Append(FPosts);
  Writeln(FPosts, '111');
  CloseFile(FPosts); (!!!) }
  Reset(FPosts);
  B := false;

  //Проверка на существование строки в файле
  while not eof(FPosts) do
    begin
      readln(FPosts, Post);
      if Post = ComboBox1.Text then
        B := true;
    end;

  //Если ComboBox1.Text нет в файле
  //добавляем строку
  if B = false then
    begin
      CloseFile(FPosts);
      showmessage(S);
      Append(FPosts);
      Writeln(FPosts, ComboBox1.Text);
    end;
  CloseFile(FPosts);
end;
Выползает ошибка I/O error 32 на строке где Append.
В чем может быть дело? Файл другими приложениями не используется, он создается при запуске программы.
Кстати на том Append'е который в каментах та же самая ошибка выползала.
Dexes вне форума Ответить с цитированием
Старый 04.02.2012, 22:19   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

а вы попробуйте сделать код чтения файла не в процедуре создания формы, а позже, скажем при нажатии кнопки на этой форме. бывает, что сам файл программа ещё не успела создать, а вы его уже открываете. тогда конечно ругаться будет
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace на форуме Ответить с цитированием
Старый 04.02.2012, 22:39   #3
Dexes
Пользователь
 
Регистрация: 27.12.2011
Сообщений: 86
По умолчанию

2 NetSpace,
процедура с чтением файла висит не на FormCreate, а на клике кнопки.
при отладке (прогоне процедуры по F8 все записи читаются и файл не открывается именно для дозаписи, то есть Reset который выше файл открывает и отлично его читает, да и если бы не было файла ошибка была бы другой
'File not found'
Прикладываю ссылку на файл, дабы облегчить понимание
Облегченная версия программы тут
Ошибка происходит при регистрации.
P.S. NetSpace, спасибо за попытку)))

ADD

{ (!!!) Append(FPosts);
Writeln(FPosts, '111');
CloseFile(FPosts); (!!!) }
этот кусок в выложенной проге не закаменчен

Последний раз редактировалось Dexes; 04.02.2012 в 22:45.
Dexes вне форума Ответить с цитированием
Старый 04.02.2012, 23:27   #4
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

32 = ERROR_SHARING_VIOLATION = The process cannot access the file because it is being used by another process.

Ты файл сам же и заблокировал. У тебя в TForm1.ReadPosts файл не закрывается.

Вообще, рекомендую использовать try/finally. И добавить обработку ошибок.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.

Последний раз редактировалось Stilet; 04.02.2012 в 23:41.
GunSmoker вне форума Ответить с цитированием
Старый 05.02.2012, 00:13   #5
Dexes
Пользователь
 
Регистрация: 27.12.2011
Сообщений: 86
По умолчанию

2 GunSmoker, спасибо!)
Dexes вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ChromeFrame не открывает файл demiancz Общие вопросы Delphi 2 09.01.2012 01:30
delphi 7. открыть файл для чтения и записи сразу ромик0 Общие вопросы Delphi 10 02.11.2011 09:51
Файл доступен только для чтения A_L_E_X Microsoft Office Excel 6 28.10.2010 14:09
FileT - как открыть файл txt для чтения, и где указывается путь Leshiy1 Общие вопросы C/C++ 7 09.04.2010 21:22
Как открыть для чтения и записи файл без расширения DeDoK Общие вопросы Delphi 4 11.11.2009 22:41