Проблема с FSO
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.249] |
|
|
Правила раздела Visual Basic: Общие вопросы
FAQ Сайта
FAQ Раздела
Кладовка
Наши Исходники
API-Guide
Поиск по Разделу
MSDN Library Online
Google| Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Проблема с FSO
|
Сообщ.
#1
,
|
|
|
|
|
Сообщ.
#2
,
|
|
|
|
Project->References и поставить галочку напротив Microsoft Scripting Runtime
|
|
Сообщ.
#3
,
|
|
|
|
И еще нажать ОК))
|
|
Сообщ.
#4
,
|
|
|
|
![]() ![]() Dim FSO As Object Private Sub Form_Load() Set FSO = CreateObject("Scripting.FileSystemObject") End Sub - Если совсем лень... |
|
Сообщ.
#5
,
|
|
|
|
Цитата lytgeygen @ As New вот только хорошие книги настоятельно не рекомендуют использовать As New — в сложном коде это чревато тем, что ты не сможешь точно понять, где создаётся объект... а самое главное, он может быть создан случайно, при попытке проверить его значение — что приведёт к логической ошибке в коде. ПисАть Dim objFSO As Scripting.FileSystemObject Set objFSO = New Scripting.FileSystemObject совсем не сложнее, зато ты явно знаешь, когда и где создаётся объект. Цитата VisualProg @ Если совсем лень... это не "если мсовсем лень", а позднее связывание. Неудобно тем, что среда не поддерживает автокомплит для таких объектов, зато имеет огромный плюс: в случае отсутствия нужной библиотеки, программа не упадёт при попытке запуска, а нормально запустится, дойдёт до попытки создать объект и сгененирует ошибку, которую можно перехватить обычным On Error — например, чтоб сообщить юзеру, где он должен взять недостающую длл`ку |
|
Сообщ.
#6
,
|
|
|
|
Цитата Змей @ Аналогично и в случае с new плюс: в случае отсутствия нужной библиотеки, программа не упадёт при попытке запуска, а нормально запустится, дойдёт до попытки создать объект и сгененирует ошибку, которую можно перехватить обычным On Error — например, чтоб сообщить юзеру, где он должен взять недостающую длл`ку |
|
Сообщ.
#7
,
|
|
|
|
Цитата Змей @ перехватить обычным On Error Блин! А я то думал! Вот так всегда - учишся, подключаешь по 10 библиотек для отслеживания всех возможных ошибок, а тут когда проделанна годовая работа - "On Error" оказывается не просто НЕ частью Commondialog, это вообще самостоятельная функция, которую можно впихнуть в процедуру для отслеживания ошибок! lytgeygen чтож вы ету тему год назад не подняли?... |
|
Сообщ.
#8
,
|
|
|
|
Цитата VisualProg @ "On Error" оказывается не просто НЕ частью Commondialog, это вообще самостоятельная функция Я тебя еще больше удивлю -- On Error не функция, это конструкция языка. |
|
Сообщ.
#9
,
|
|
|
|
VisualProg, если ты не заметил, "On Error" по дефолту синеньким выделяется)
|
|
Сообщ.
#10
,
|
|
|
|
Цитата ANDLL @ Аналогично и в случае с new не совсем. Если библиотека подключена к проекту через References — запуск программы в системе, где эта библиотека не установлена, вызовет неустранимую ошибку СРАЗУ, ещё до начала выполнения кода программы. Если же библиотека не подключена в References, а объекты создаются через CreateObject или GetObject — программа нормально запустится, а ошибка будет в момент попытки создания объекта. например, так: ![]() ![]() Private useCAPI As Boolean 'переменная уровня модуля Private Sub Class_Initialize() On Error Resume Next Set cao = CreateObject("CAPICOM.Utilities") If cao Is Nothing Then 'библиотека микрософт криптоАПИ не установлена, будем юзать медленные самодельные функции. useCAPI = False Else 'всё нормально, можно юзать криптоАПИ. useCAPI = True End If End Sub или так: ![]() ![]() Private Sub Class_Initialize() On Error GoTo errh Set fso = CreateObject("Scripting.FileSystemObject") Set shl = CreateObject("Shell.application") Set wsc = CreateObject("WScript.Shell") Exit Sub errh: MsgBox "Не удалось подключить одну из системных библиотек. Ваша система повреждена или не соответствует требованиям программы." End End Sub |
|
Сообщ.
#11
,
|
|
|
|
Цитата Змей @ Если библиотека подключена к проекту через References — запуск программы в системе, где эта библиотека не установлена, вызовет неустранимую ошибку СРАЗУ, ещё до начала выполнения кода программы. офигеть какие новости. |
|
Сообщ.
#12
,
|
|
|
|
nash, иди нафиг
Я не для тебя говорю, а для тех, кому это и правда новость. И таких людей немало.M Кстати, nash, я обязан обратить ваше внимание на тот факт, что своим постом #11 вы грубо нарушаете Правила, п.5 |
|
Сообщ.
#13
,
|
|
|
|
Цитата Змей @ кому это и правда новость да потому что это не новость, а фигня (неправда). |
|
Сообщ.
#14
,
|
|
|
|
.
Добавлено Цитата nash @ неправда дааа??? батенька, в своём стремлении доказать кому-то свою крутизну вы уже совсем заврались. Если программа скомпилирована с заявленной в References библиотекой, то на машине, где этой библиотеки нет, она не запустится СОВСЕМ. nash, у меня и раньше были сомнения в вашей компетентности, но теперь вы их окончательно развеяли. Теперь я знаю точно: Вы некомпетентны. сорри за оффтоп. |
|
Сообщ.
#15
,
|
|
|
|
Цитата nash @ да потому что это не новость, а фигня (неправда). Эх, моя невнимательность. Мне чего-то показалось, что речь идет о Components. Хотя, и в этом случае, теоретически, можно выйти из положения, установив стартовой Sub Main. Цитата Змей @ злостный оффтоп, п5, плюс личная переписка, п9. Злостный оффтоп пошел от тебя, как и личная переписка. nash высказался по теме, и он прав |