Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Связать две проги [D7, WinXP]


Дима ©   (2010-11-22 23:17:00) 

Здравствуйте.Вообщем есть прога которая все время шлет значение одной переменной в текстовый файл(приблизительно 2 раза в сек).Я написал программу которая обрабатывает эти данные.Memo загружает этот файл и считывает эти значения.Проблема в том ,что время от времени выскакивает ошибка "нельзя открыть файл....занят другим процессом",это понятно при совпадении той проги на запись а моей на чтение этого файла.

Как зделать что-бы игнорировать эту ошибку или просто проигнорировать.Надо что б прога с критом не вылетала.

Помогите пожалуйста,не лезет ниче в голову.Заранее благодарен.С уважением,Дмитрий.


azim   (2010-12-01 07:31:00) [1]

Для таких задач лучше использовать почтовые ящики, т.е mailSlot


Плохиш   (2010-11-24 23:15:00) [2]


> незнают как зовут президента.

Неужели это такое важное знание?


Денис2   (2010-11-24 20:40:00) [3]


> Плохиш ©

В интернете можно отыскать букварь, сейчас молодёжь по линейка да контрам. и незнают как зовут президента.


Дима   (2010-11-24 20:20:00) [4]


> + не смотри под delphi отладчиком, смотри готовый ехе когда
> запускаешь(или убери stop on except настройку в самой delphi)

Спасибо,вроде помогло.


> {$-}

Спасибо за директивы


Плохиш   (2010-11-24 20:14:00) [5]


> нужно первую программу переделать.

дальше читать не стал.


Денис2   (2010-11-24 20:10:00) [6]


> Плохиш ©  

Это не генеальное решение проблемы, нужно первую программу переделать.
я так делал чат раньше и блокировал ошибки от программы, чтобы хоть както умудриться читать файл..

Для фильтрации, к примеру, EConvertError, вы можете создать собственный обработчик исключений:

Приблизительно так:

Объявите следующую процедуру в объекте вашей главной формы:
procedure MyException(Sender:TObject; E:Exception);

Затем делайте так:
procedure TMyForm.MyException(Sender:TObject; E:Exception);
begin
 if (E.ClassType.ClassName='EConvertError') then
 begin
   {как-то общаемся с пользователем по-поводу ошибки}
 end
 else
   {позволяем Delphi показать ошибку}
   Application.ShowException(E);
end;


Наконец, позвольте приложению воспользоваться вашим новым обработчиком исключений:
procedure TMyForm.FormCreate(Sender: TObject);
begin
 Application.OnException := MyException;
end;


Плохиш   (2010-11-24 19:29:00) [7]


> kvorubin ©   (24.11.10 18:52) [11]
>
> Сколько информации в файле? наверняка раз в 2 секунды мало
> сохраняется.
>
> кустарно можно через реестр передавать.
> через клиенты поточно как подсказал stas.

Типа, чукча - не читатель?
Ты бы ответы автора перед своим жеванием почитал.


kvorubin   (2010-11-24 18:52:00) [8]

Сколько информации в файле? наверняка раз в 2 секунды мало сохраняется.

кустарно можно через реестр передавать.
через клиенты поточно как подсказал stas. как осуществить? - есть пример в каталоге демо.

программа вместо сохранения мемо в файл, может сохранять во всякие переменные стринга. массой и построчно вередовать в другую.
можно даже энтеры в строку вложить, чтобы вторая прога приняла строку как текст.
showmessage('строка1'+#13+'строка2');

формируй линию за линией через #13 и пуляй втрой программе,
а второй прими в мемо.


12   (2010-11-24 08:33:00) [9]

не Мастер тур случайно?


Плохиш   (2010-11-23 23:55:00) [10]


> Дима   (23.11.10 20:01) [8]

Так ошибку в своей 17й строке уже исправил?


Дима   (2010-11-23 20:01:00) [11]

Спасибо за ответы.Проблема в том,что та прога может передавать только в текстовый файл.


stas   (2010-11-23 17:29:00) [12]

а еще для того чтобы из одной программы передавать данные в другую можно обойтись и без файла. Через SendMessage или через соккеты.


Плохиш   (2010-11-23 15:17:00) [13]

{$-}


12   (2010-11-23 12:28:00) [14]


> Ставь блок try except там, где твоя программа открывает
> этот файл.

+ не смотри под delphi отладчиком, смотри готовый ехе когда запускаешь
(или убери stop on except настройку в самой delphi)


Anatoly Podgoretsky   (2010-11-23 09:52:00) [15]

Сомневаюсь что ты открываешь на чтение.


Германн   (2010-11-23 04:38:00) [16]


> Дима   (22.11.10 23:27) [2]
>
> try except ??? пробовал,но ошибка все равно выскакивает,
> может не в том блоке где надо писал.

Ставь блок try except там, где твоя программа открывает этот файл.
И не надо грузить файл в мемо, если не требуется "ручное редактирование пользователем" содержимого файла. Для обработки содержимого текстового файла вполне достаточно TStringList.


Дима   (2010-11-22 23:27:00) [17]

try except ??? пробовал,но ошибка все равно выскакивает,может не в том блоке где надо писал.Если можно поподробнее.


Dimka Maslov   (2010-11-22 23:22:00) [18]

есть такая штука как обработка исключительных ситуаций


Наверх

Титульная страница Поиск, карта сайта Написать письмо