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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Битые файлы, ошибка чтения 
V
    Опции темы
Apls
Дата 11.9.2007, 06:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть на компе у меня папка, где в папки я зайти не могу, пишет недостаточно прав, а картинки - просмотр недоступен, не знаю что я с ней сделал, но папка очень загадочная =).
Я пытаюсь найди файлы по маске *.jpg, если нахожу то произвожу с ними какие то действия, так вот если вызывается процедура открытия файла, выдается ошибка 103 на команде reset(f,2); если так {$I-} reset(f,2); {$I+}, то ошибка выдается на blockread, как заранее предупредить таковую ошибку и просто пропустить этот файл? Есть, например, функция для проверки, открыт файл уже или нет, думаю она помогла бы.
З.Ы. Работаю с правами администратора.

Это сообщение отредактировал(а) Apls - 11.9.2007, 06:49
PM MAIL   Вверх
SergeBS
Дата 11.9.2007, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

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



Apls
Читай доки. Надо: 
Код

var
  F: file of Byte;
begin
  if OpenDialog1.Execute then
  begin
    AssignFile(F, OpenDialog1.FileName);
    {$I-}
    Reset(F);
    {$I+}
    if IOResult = 0 then
    begin
      MessageDlg('File size in bytes: ' + IntToStr(FileSize(F)),
        mtInformation, [mbOk], 0);
      CloseFile(F);
    end
    else
      MessageDlg('File access error', mtWarning, [mbOk], 0);
  end;
end;

Вообще-то, такая тема - для начинающих.
PM MAIL   Вверх
Alexeis
Дата 11.9.2007, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



В делфи уже принято использовать защищенные секции 
Код

try

except / finally

end;


Добавлено через 4 минуты и 5 секунд
Между try except идет опасный блок, после except идет блок обработки ошибки, который выполняет в случае ошибки, если там ничего не нужно делать, то просто ставим finally (код в ней выполняется в любом случае).


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Apls
Дата 11.9.2007, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Хм, оба варианта почему то не помогли, ошибка выдается все равно.
Я просто обрамил весь код в {$I-} {$I+} и все заработало. 
PM MAIL   Вверх
Alexeis
Дата 11.9.2007, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Apls, работает, работает просто под дебагом исключения по дефолту все равно генеряться. Если запустить экзешник (или отключить генерацию при дебаге) то все будет красиво.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




[ Время генерации скрипта: 0.0735 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.