![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Связать две проги [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]есть такая штука как обработка исключительных ситуаций