|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.01.2014, 10:15 | #1 |
Пользователь
Регистрация: 30.01.2014
Сообщений: 20
|
Сервис приложение Delphi
Добрый день! Я совсем чайник в Delphi, при этом прочитал не мало постов по своей проблеме. Прошу не пинать!!!
Итак: задача и суть проблемы! Задача заключается в следующем. Необходима служба, которая бдит определенную папку (из своих настроек в реестре), как только там появляется файлик, она читает его и удаляет. Суть проблемы: Я написал сервис, все необходимые процедуры и функции... но при попытке открытия файла reset(f) служба останавливается... вот кусок кода procedure ScanFolder(); var DirInfo: TSearchRec; ResultFile: integer; F :=TextFile; begin ResultFile := FindFirst(mDir+'*.*', faAnyFile, DirInfo); //if i = 0 then DeleteFile(mDir+DirInfo.Name); //if ResultFile = 0 then //ParseFile(mDir+DirInfo.Name,DirInfo .Name); // DeleteFile(mDir+DirInfo.Name); while ResultFile = 0 do begin if FileExists(mDir+DirInfo.Name) then begin try AssignFile(f,'D:\LOG.txt'); reset(f); //Тут валится служба ... действия над содержимым файла CloseFile(f); DeleteFile(mDir+DirInfo.Name); except mlog('Ошибка загрузки данных в файл '+mDir+DirInfo.Name); end; end end; FindClose(DirInfo); end;
Тяжела и неказиста жизнь у Димы программиста
Последний раз редактировалось Dimonnik; 30.01.2014 в 10:23. |
30.01.2014, 11:23 | #2 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Код:
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
30.01.2014, 11:38 | #3 | |
Пользователь
Регистрация: 30.01.2014
Сообщений: 20
|
Цитата:
Это не решило проблему(((
Тяжела и неказиста жизнь у Димы программиста
|
|
30.01.2014, 11:48 | #4 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
А точно к моменту вызова функции reset() файл существует и не открыт чем-то еще?
Что за ошибка выпадает? Что говорит точка останова?
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
30.01.2014, 11:55 | #5 |
Пользователь
Регистрация: 30.01.2014
Сообщений: 20
|
Да, файл существует и больше никем (ничем) не открыт. Как отладить работающую службу?
При чем я больше чем уверен в том, что если бы я писал обычное приложение, то это бы отработало без ошибок. А вот с сервис-приложением приходится туго((
Тяжела и неказиста жизнь у Димы программиста
|
30.01.2014, 12:04 | #6 |
Пользователь
Регистрация: 30.01.2014
Сообщений: 20
|
Приведу более детальный код в надежде что найдется тот Гуру программист, который сможет наставить меня на путь истинный...
procedure ScanFolder(); var DirInfo: TSearchRec; ResultFile: integer; F :TextFile; begin ResultFile := FindFirst(mDir+'*.*', faAnyFile, DirInfo); while ResultFile = 0 do begin if FileExists(mDir+DirInfo.Name) then begin try AssignFile(f,'D:\LOG.txt'); reset(f); //Тут валится служба ... действия над содержимым файла CloseFile(f); DeleteFile(mDir+DirInfo.Name); except mlog('Ошибка открытия файла '+mDir+DirInfo.Name); end; end end; FindClose(DirInfo); end; procedure TSMSServer.ServiceExecute(Sender: TService); const SecBetweenRuns = 5; var Count: integer; begin Count := 0; while not Terminated do begin Inc(Count); if Count >= SecBetweenRuns then begin Count := 0; ScanFolder(); end; Sleep(1000); ServiceThread.ProcessRequests(False ); end; end;
Тяжела и неказиста жизнь у Димы программиста
|
30.01.2014, 12:09 | #7 | ||
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Цитата:
ну и конечно про ошибку тут лучше ничего не говорите, а то украдут ее, а она судя по всему супер секретная, и логи которые тут тоже не показывайте - подсудное дело. Цитата:
|
||
30.01.2014, 12:13 | #8 | |
Пользователь
Регистрация: 30.01.2014
Сообщений: 20
|
Ничего секретного тут нет. Я делаю все тоже самое в обычном приложение - РАБОТАЕТ!
Цитата:
Тяжела и неказиста жизнь у Димы программиста
|
|
30.01.2014, 12:18 | #9 | |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Цитата:
|
|
30.01.2014, 12:26 | #10 |
Пользователь
Регистрация: 30.01.2014
Сообщений: 20
|
Реальная ошибка все отображается и выглядит следующим образом:
Не удается найти описание для идентификатора события 0 из источника Project1.exe. Вызывающий данное событие компонент не установлен на этом локальном компьютере или поврежден. Установите или восстановите компонент на локальном компьютере. Процесс службы не может установить связь с контроллером службы
Тяжела и неказиста жизнь у Димы программиста
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
И как сервис и как программа одновременно(C++ => Delphi) | Человек_Борща | Общие вопросы Delphi | 5 | 09.12.2018 13:23 |
Превратить десткоп приложение на делфи в интернет-сервис | Dennis777 | Общие вопросы Delphi | 12 | 09.12.2013 17:07 |
Delphi приложение | Homadrom | Фриланс | 3 | 12.05.2012 13:46 |
Приложение Delphi | RuVarez | Общие вопросы Delphi | 6 | 03.09.2010 13:23 |