Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
3-1253187389
harisma
2009-09-17 15:36
2011.02.20
Помогите оптимизировать скрипт


2-1291197604
novi4OK2
2010-12-01 13:00
2011.02.20
нужен совет по организации кода


15-1289645505
Novi4ok1992
2010-11-13 13:51
2011.02.20
Runtime 210


15-1289568102
Медвежонок Пятачок
2010-11-12 16:21
2011.02.20
ипонский городо... голограммОй


2-1290639541
Германн
2010-11-25 01:59
2011.02.20
Типизированные константы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский