как определить что нет сетевого диска, пробовал определять это с помощью DiskSi |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
как определить что нет сетевого диска, пробовал определять это с помощью DiskSi |
DeeMon |
Сообщение
#1
|
Гость |
Есть программа нижнего уровня на Турбо Паскале(ТП) которая обменивается файлами с другой программой верхнего уровня (на Fox) по средствам сети. Так вот, та программа, которая написана на ТП находится на компе под DOS и сеть на нем соответственно под DOS и подключен сетевой диск на который эта программа пишет те самые файлы для обмена. Проблема заключется в следующем:
когда верхний уровень отваливается (перезагружается, выключается и тд) нижний уровень должен работать как ни в чем не бывало, с той лишь разницей, что он не должен ни какие файлы никуда не передавать, как определить что нет сетевого диска без всяких задержек, (дело в том, что я пробовал определять это с помощью DiskSize(5) но в этом случае похоже, что он ждет какие-то там тайм ауты(чисто мое предположение) и программа в этом месте жутко тормозит, что недопустимо в моем случае) за любую помощь заранее благодарен |
Ozzя |
Сообщение
#2
|
Гуру Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: 16 |
|
Altair |
Сообщение
#3
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Ну есть пожалуй еще проще способ:
1. Для определения доступности сетевого диска, попробуйте использовать переменную IoResult, то есть выполняем любую операцию с файлом на этом диске, например Reset(f), если диска нет, то в переменную IoResult будет помещен код ошибки, при этом операция выполнится очень(1) быстро. 2. Есть второй способ, не задумываясь пишите файлы на диск, и если происходит критическая ( RUN-TIME ERROR) ошибк, выполняйте нужные дейсвтия. Но в этом случае, как Вы сами понимаете, необходимо обрабатывать критические ошибки. Если заинтерисуетесь этим методом, могу выложить модуль (из книги Фаронова) "обработка критическихз ошибок" -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
DeeMon |
Сообщение
#4
|
Гость |
Цитата(Oleg_Z @ 22.09.04 18:39) Ну есть пожалуй еще проще способ: 1. Для определения доступности сетевого диска, попробуйте использовать переменную IoResult, то есть выполняем любую операцию с файлом на этом диске, например Reset(f), если диска нет, то в переменную IoResult будет помещен код ошибки, при этом операция выполнится очень(1) быстро. 2. Есть второй способ, не задумываясь пишите файлы на диск, и если происходит критическая ( RUN-TIME ERROR) ошибк, выполняйте нужные дейсвтия. Но в этом случае, как Вы сами понимаете, необходимо обрабатывать критические ошибки. Если заинтерисуетесь этим методом, могу выложить модуль (из книги Фаронова) "обработка критическихз ошибок" пробовал .... так же долго как и DiskSize |
Altair |
Сообщение
#5
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Долго????
Так, товарищ, вы время тогда называйте требуемое! А то долго - не долго .... это игра словами! -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
DeeMon |
Сообщение
#6
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: 0 |
Oleg_Z
долго это где-то около минуты |
Altair |
Сообщение
#7
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Эге ... да ... минута это серьезно ...
А оно и понятно, ведь сеть еще определить надо, а затем еще и диск на том конце... Тогда тут ни как не обойтись представлением о сетевом диске как о физическом! А может "верхняя" система посылать сообщение "нижней" что бы та остановилась? Или "верхняя" система пожет непроизвольно перегружаться, выключатся? То есть один из способов такой: При попытке перегрузить верхнюю систему, она сначала подает сигнал нижней, что отключается, а на нижней стоит резидент (или сама прога это определяет), регистрирующий отключение. Еще вопрос: а система верхняя, сильно удалена от нижней? (физическое расстояние в метрах от одной машины до другой) -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
DeeMon |
Сообщение
#8
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: 0 |
слушайте, народ тут мне в голову пришла одна мысль (можно ведь создать рамдиск на нижнем уровне и его расшарить, тогда этот диск точно уж не будет отваливаться и файлы я могу туда писать сколько угодно, и тормозить ни чего не должно), но для этого нужен lantastic или еще какой-нить сервер по ДОС не подскажите где можно его взять
|
Altair |
Сообщение
#9
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Цитата рамдиск Так, стоп! Тогда такое предложение системы: На нижнем уровне есть электронный диск в оперативной памяти. Программа посылающая файлы, шлет их ВСЕГДА на эл. диск. Резидент проверяет есть ли диск сетевой (1 минуту, т.к. это не важно) , и если есть отсылает их на сеть и удаляет с эл.диска. для эл.диска необходимо прописать нужные строки в AUTOEXEC.BAT и CONFIG.SYS!!! -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
DeeMon |
Сообщение
#10
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: 0 |
Да нет же, сетевой диск мне совсем не нужен будет, ведь я расшарю рамдиск для доступа к нему по сети и подключу его на верхнем уровне (в Винде) как сетевой
|
Altair |
Сообщение
#11
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Ага, все понял.
Ну тогда выходит осталось найти сервер под ДОС! [offtop] Аватар это фотка??? Хех, здорово. Но здесь я "маршал задач" :D [/offtop] -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
DeeMon |
Сообщение
#12
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: 0 |
да не маршал я, всего лишь рядовой, а фотка армейская ;)
хех, круто! ИМХО только у нас в России есть военные программисты, и программисты бывшие военные! Сообщение отредактировано: Oleg_Z - |
united pharmacy lasix no precrcr |
Сообщение
#13
|
Гость |
Buy Generic Zithromax
|
Текстовая версия | 19.04.2024 10:08 |