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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2009, 18:52   #1
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию Ошибка открытия файла

Здравствуйте!
Столкнулся с такой проблемой: программа помещена в автозагрузку, и при старте должна прочесть текстовый файл, чтение происходит обычным способом TStringList.LoadFromFile. Получаю ошибку EFOpenError и система программу завершает. Если перенести открытие с помощью таймера на минуту или две позже, уже выскакивает "обычная ошибка" открытия Cannot open file, и программа продолжает работу, но файл по прежнему не загружен. Причем что интересно, если запускать программу вручную, никакой ошибки чтения нет, только если она грузится автоматически при старте системы. В чем может быть проблема?

С путем к файлу, и с кодом открытия все нормально, я проверил. Ошибка только если программа загрузилась в автозагрузке.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 13.02.2009, 18:59   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Если перенести открытие с помощью таймера на минуту или две позже, уже выскакивает "обычная ошибка" открытия Cannot open file
То есть даже после полной загрузки винды и ее компонентов?
А если стартовать программу при загрузке не когда винде вздумается, а последней, гарантированно после загрузки всех "служебок"?
А Виста или ХР?
Сейчас смоделировал:
- загрузка в Мемо при создании формы;
- в автозагрузку поместил ярлык вручную.
Все совершенно нормально.
Кстати, она в автозагрузке видна? А если ее оттуда запускать даблкликом?

Последний раз редактировалось mihali4; 13.02.2009 в 19:12.
mihali4 вне форума Ответить с цитированием
Старый 13.02.2009, 19:16   #3
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
А Виста или ХР?
И там, и там.

Цитата:
А если стартовать программу при загрузке не когда винде вздумается, а последней, гарантированно после загрузки всех "служебок"?
А так можно разве? Да и все равно не в этом дело, я по таймеру сделал специально задержку для этого, чтобы наверняка уже, результат тот же, ошибка только немного видоизменяется.

Я думаю тут что-то связано с доступом к файлу. Только вот что?

з.ы. у меня в реестр загрузка помещена, в разделе Run
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 13.02.2009 в 19:19.
mutabor вне форума Ответить с цитированием
Старый 13.02.2009, 19:44   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Сунул в реестр, в Run - все нормально, никакой ошибки...
А как она у вас прописана в реестре?
mihali4 вне форума Ответить с цитированием
Старый 13.02.2009, 20:10   #5
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Получаю ошибку EFOpenError и система программу завершает
Исключение EFOpenError генерируется, когда приложение не может открыть заданный файл. Это может случиться, например, если указанный файл не существует или он расположен не в том каталоге, в котором приложение ищет его. Все свойства и методы исключения EFOpenError наследуются от базового класса Exception. Проверьте точно пути или может для эксперимента временно пропишите их вручную. Из за реестра такое врядле может быть.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 13.02.2009, 23:29   #6
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

попробуйте загружать так
Код:
loadfromfile((extractfilepath)+test.txt);
P.S. Возможно написал с ошибками, забыл как правильно.

Последний раз редактировалось Shouldercannon; 13.02.2009 в 23:31.
Shouldercannon вне форума Ответить с цитированием
Старый 14.02.2009, 02:11   #7
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Нашел причину. Таки да, это был неправильный путь. Всё моя невнимательность, на существование проверял с полным путем, а строкой ниже загружал только имя файла и в упор этого не видел
А при автозагрузке текущая директория такая: Documents and settings\<пользователь>

Спасибо всем за помощь!
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 28.09.2009, 18:33   #8
100GRamm
ХРЕНЕЮ с ИНДИ
Пользователь
 
Аватар для 100GRamm
 
Регистрация: 08.02.2009
Сообщений: 92
По умолчанию

Привет всем! Тут такое дело : прога читает CHAR файл с винта без проблем! предусмотрено
автоопределение пути и тп. отлично работает, но сD возникает ошибка чтения, попробовал
сменить атрибут читаемого файла на винте - такая же фигня! ни че понять не могу- я просто читаю
символы! :

function R_BNS(fLn:string):boolean; //read BNS-Sector
var fL:file of char; s,s0,s1,L1:string; i,Ls:integer; nE:longint;
c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10:c har;
begin
i:=0;
assignfile(fL,fLn); << тут совершенно правильный путь
reset(fL); << тут возникает ошибка! (break point'ил)
read(fL,c1,c2,c3,c4,c5,c6,c7,c8,c9, c10);
s:=c1+c2+c3+c4+c5+c6+c7+c8+c9+c10;
nE:=strtoint(s);
seek(fL,nE+10);
read(fL,c1,c2,c3,c4,c5);
s:=c1+c2+c3+c4+c5;

всю жизнь , еще с паскаля юзаю- такого не видел!
Велкам! :D http://radiomedtech.ucoz.ru
100GRamm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
События при создании/открытия файла _symon Win Api 2 13.02.2009 21:19
Фиксирование времени открытия файла eda Microsoft Office Excel 5 05.02.2009 11:52
Ошибка открытия файла Word 2007 Владим Microsoft Office Word 0 07.10.2008 14:22
при открытии большого файла должно появляться окно с ProgressBar и показывать ход открытия Михаил Юрьевич Общие вопросы Delphi 3 28.05.2008 23:33