Форум: "Начинающим";
Текущий архив: 2011.02.20;
Скачать: [xml.tar.bz2];
ВнизСвязать две проги Найти похожие ветки
← →
Дима (2010-11-22 23:17) [0]Здравствуйте.Вообщем есть прога которая все время шлет значение одной переменной в текстовый файл(приблизительно 2 раза в сек).Я написал программу которая обрабатывает эти данные.Memo загружает этот файл и считывает эти значения.Проблема в том ,что время от времени выскакивает ошибка "нельзя открыть файл....занят другим процессом",это понятно при совпадении той проги на запись а моей на чтение этого файла.
Как зделать что-бы игнорировать эту ошибку или просто проигнорировать.Надо что б прога с критом не вылетала.
Помогите пожалуйста,не лезет ниче в голову.Заранее благодарен.С уважением,Дмитрий.
← →
Dimka Maslov © (2010-11-22 23:22) [1]есть такая штука как обработка исключительных ситуаций
← →
Дима (2010-11-22 23:27) [2]try except ??? пробовал,но ошибка все равно выскакивает,может не в том блоке где надо писал.Если можно поподробнее.
← →
Германн © (2010-11-23 04:38) [3]
> Дима (22.11.10 23:27) [2]
>
> try except ??? пробовал,но ошибка все равно выскакивает,
> может не в том блоке где надо писал.
Ставь блок try except там, где твоя программа открывает этот файл.
И не надо грузить файл в мемо, если не требуется "ручное редактирование пользователем" содержимого файла. Для обработки содержимого текстового файла вполне достаточно TStringList.
← →
Anatoly Podgoretsky © (2010-11-23 09:52) [4]Сомневаюсь что ты открываешь на чтение.
← →
12 © (2010-11-23 12:28) [5]
> Ставь блок try except там, где твоя программа открывает
> этот файл.
+ не смотри под delphi отладчиком, смотри готовый ехе когда запускаешь
(или убери stop on except настройку в самой delphi)
← →
Плохиш © (2010-11-23 15:17) [6]{$-}
← →
stas © (2010-11-23 17:29) [7]а еще для того чтобы из одной программы передавать данные в другую можно обойтись и без файла. Через SendMessage или через соккеты.
← →
Дима (2010-11-23 20:01) [8]Спасибо за ответы.Проблема в том,что та прога может передавать только в текстовый файл.
← →
Плохиш © (2010-11-23 23:55) [9]
> Дима (23.11.10 20:01) [8]
Так ошибку в своей 17й строке уже исправил?
← →
12 © (2010-11-24 08:33) [10]не Мастер тур случайно?
← →
kvorubin © (2010-11-24 18:52) [11]Сколько информации в файле? наверняка раз в 2 секунды мало сохраняется.
кустарно можно через реестр передавать.
через клиенты поточно как подсказал stas. как осуществить? - есть пример в каталоге демо.
программа вместо сохранения мемо в файл, может сохранять во всякие переменные стринга. массой и построчно вередовать в другую.
можно даже энтеры в строку вложить, чтобы вторая прога приняла строку как текст.
showmessage("строка1"+#13+"строка2");
формируй линию за линией через #13 и пуляй втрой программе,
а второй прими в мемо.
← →
Плохиш © (2010-11-24 19:29) [12]
> kvorubin © (24.11.10 18:52) [11]
>
> Сколько информации в файле? наверняка раз в 2 секунды мало
> сохраняется.
>
> кустарно можно через реестр передавать.
> через клиенты поточно как подсказал stas.
Типа, чукча - не читатель?
Ты бы ответы автора перед своим жеванием почитал.
← →
Денис2 (2010-11-24 20:10) [13]
> Плохиш ©
Это не генеальное решение проблемы, нужно первую программу переделать.
я так делал чат раньше и блокировал ошибки от программы, чтобы хоть както умудриться читать файл..
Для фильтрации, к примеру, 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 20:14) [14]
> нужно первую программу переделать.
дальше читать не стал.
← →
Дима (2010-11-24 20:20) [15]
> + не смотри под delphi отладчиком, смотри готовый ехе когда
> запускаешь(или убери stop on except настройку в самой delphi)
Спасибо,вроде помогло.
> {$-}
Спасибо за директивы
← →
Денис2 (2010-11-24 20:40) [16]
> Плохиш ©
В интернете можно отыскать букварь, сейчас молодёжь по линейка да контрам. и незнают как зовут президента.
← →
Плохиш © (2010-11-24 23:15) [17]
> незнают как зовут президента.
Неужели это такое важное знание?
← →
azim (2010-12-01 07:31) [18]Для таких задач лучше использовать почтовые ящики, т.е mailSlot
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.02.20;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.004 c