IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> как определить что нет сетевого диска, пробовал определять это с помощью DiskSi
DeeMon
сообщение 22.09.2004 14:29
Сообщение #1


Гость






Есть программа нижнего уровня на Турбо Паскале(ТП) которая обменивается файлами с другой программой верхнего уровня (на Fox) по средствам сети. Так вот, та программа, которая написана на ТП находится на компе под DOS и сеть на нем соответственно под DOS и подключен сетевой диск на который эта программа пишет те самые файлы для обмена. Проблема заключется в следующем:
когда верхний уровень отваливается (перезагружается, выключается и тд) нижний уровень должен работать как ни в чем не бывало, с той лишь разницей, что он не должен ни какие файлы никуда не передавать, как определить что нет сетевого диска без всяких задержек, (дело в том, что я пробовал определять это с помощью DiskSize(5) но в этом случае похоже, что он ждет какие-то там тайм ауты(чисто мое предположение) и программа в этом месте жутко тормозит, что недопустимо в моем случае)

за любую помощь заранее благодарен
 К началу страницы 
+ Ответить 
Ozzя
сообщение 22.09.2004 15:49
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


http://forum.sources.ru/index.php?showtopi...nread=1&hl=диск
Сообщение № 10
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 22.09.2004 18:39
Сообщение #3


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Ну есть пожалуй еще проще способ:
1.
Для определения доступности сетевого диска, попробуйте использовать переменную IoResult, то есть выполняем любую операцию с файлом на этом диске, например Reset(f), если диска нет, то в переменную IoResult будет помещен код ошибки, при этом операция выполнится очень(1) быстро.
2.
Есть второй способ, не задумываясь пишите файлы на диск, и если происходит критическая ( RUN-TIME ERROR) ошибк, выполняйте нужные дейсвтия.
Но в этом случае, как Вы сами понимаете, необходимо обрабатывать критические ошибки.
Если заинтерисуетесь этим методом, могу выложить модуль (из книги Фаронова) "обработка критическихз ошибок"


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
DeeMon
сообщение 23.09.2004 9:15
Сообщение #4


Гость






Цитата(Oleg_Z @ 22.09.04 18:39)
Ну есть пожалуй еще проще способ:
1.
Для определения доступности сетевого диска, попробуйте использовать переменную IoResult, то есть выполняем любую операцию с файлом на этом диске, например Reset(f), если диска нет, то в переменную IoResult будет помещен код ошибки, при этом операция выполнится очень(1) быстро.
2.
Есть второй способ, не задумываясь пишите файлы на диск, и если происходит критическая ( RUN-TIME ERROR) ошибк, выполняйте нужные дейсвтия.
Но в этом случае, как Вы сами понимаете, необходимо обрабатывать критические ошибки.
Если заинтерисуетесь этим методом, могу выложить модуль (из книги Фаронова)  "обработка критическихз ошибок"

пробовал .... так же долго как и DiskSize
 К началу страницы 
+ Ответить 
Altair
сообщение 23.09.2004 9:19
Сообщение #5


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Долго????

Так, товарищ, вы время тогда называйте требуемое!

А то долго - не долго .... это игра словами!


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
DeeMon
сообщение 23.09.2004 9:28
Сообщение #6





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Oleg_Z
долго это где-то около минуты
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 23.09.2004 9:38
Сообщение #7


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Эге ... да ... минута это серьезно ...
А оно и понятно, ведь сеть еще определить надо, а затем еще и диск на том конце...

Тогда тут ни как не обойтись представлением о сетевом диске как о физическом!

А может "верхняя" система посылать сообщение "нижней" что бы та остановилась?
Или "верхняя" система пожет непроизвольно перегружаться, выключатся?
То есть один из способов такой:
При попытке перегрузить верхнюю систему, она сначала подает сигнал нижней, что отключается, а на нижней стоит резидент (или сама прога это определяет), регистрирующий отключение.
Еще вопрос: а система верхняя, сильно удалена от нижней? (физическое расстояние в метрах от одной машины до другой)


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
DeeMon
сообщение 23.09.2004 9:39
Сообщение #8





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


слушайте, народ тут мне в голову пришла одна мысль (можно ведь создать рамдиск на нижнем уровне и его расшарить, тогда этот диск точно уж не будет отваливаться и файлы я могу туда писать сколько угодно, и тормозить ни чего не должно), но для этого нужен lantastic или еще какой-нить сервер по ДОС не подскажите где можно его взять
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 23.09.2004 9:43
Сообщение #9


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
рамдиск

Так, стоп!
Тогда такое предложение системы:

На нижнем уровне есть электронный диск в оперативной памяти.
Программа посылающая файлы, шлет их ВСЕГДА на эл. диск.
Резидент проверяет есть ли диск сетевой (1 минуту, т.к. это не важно) , и если есть отсылает их на сеть и удаляет с эл.диска.

для эл.диска необходимо прописать нужные строки в AUTOEXEC.BAT и CONFIG.SYS!!!


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
DeeMon
сообщение 23.09.2004 9:48
Сообщение #10





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Да нет же, сетевой диск мне совсем не нужен будет, ведь я расшарю рамдиск для доступа к нему по сети и подключу его на верхнем уровне (в Винде) как сетевой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 23.09.2004 10:01
Сообщение #11


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Ага, все понял.
Ну тогда выходит осталось найти сервер под ДОС!

[offtop]
Аватар это фотка???
Хех, здорово. Но здесь я "маршал задач" :D
[/offtop]


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
DeeMon
сообщение 23.09.2004 10:41
Сообщение #12





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


да не маршал я, всего лишь рядовой, а фотка армейская ;)

хех, круто! ИМХО только у нас в России есть военные программисты, и программисты бывшие военные!

Сообщение отредактировано: Oleg_Z - 23.09.2004 12:37
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 16:22
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"