На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Проблема с FSO
    Доброго времени суток.

    Хочеться узнать как сделать так чтобы работала это (FSO)

    Когда я пытаюсь написать

    ExpandedWrap disabled
      Dim fso As New FileSystemObject


    то у меня не показывает FileSystemObject

    user posted image

    как это исправить ?
      Project->References и поставить галочку напротив Microsoft Scripting Runtime
        И еще нажать ОК))
          ExpandedWrap disabled
            Dim FSO As Object
            Private Sub Form_Load()
            Set FSO = CreateObject("Scripting.FileSystemObject")
            End Sub


          - Если совсем лень...
            Цитата lytgeygen @
            As New

            вот только хорошие книги настоятельно не рекомендуют использовать As New — в сложном коде это чревато тем, что ты не сможешь точно понять, где создаётся объект... а самое главное, он может быть создан случайно, при попытке проверить его значение — что приведёт к логической ошибке в коде.

            ПисАть
            Dim objFSO As Scripting.FileSystemObject
            Set objFSO = New Scripting.FileSystemObject

            совсем не сложнее, зато ты явно знаешь, когда и где создаётся объект.

            Цитата VisualProg @
            Если совсем лень...

            это не "если мсовсем лень", а позднее связывание. Неудобно тем, что среда не поддерживает автокомплит для таких объектов, зато имеет огромный плюс: в случае отсутствия нужной библиотеки, программа не упадёт при попытке запуска, а нормально запустится, дойдёт до попытки создать объект и сгененирует ошибку, которую можно перехватить обычным On Error — например, чтоб сообщить юзеру, где он должен взять недостающую длл`ку
              Цитата Змей @
              плюс: в случае отсутствия нужной библиотеки, программа не упадёт при попытке запуска, а нормально запустится, дойдёт до попытки создать объект и сгененирует ошибку, которую можно перехватить обычным On Error — например, чтоб сообщить юзеру, где он должен взять недостающую длл`ку
              Аналогично и в случае с new
                Цитата Змей @
                перехватить обычным On Error

                Блин! :wall: :wall: :wall: А я то думал! Вот так всегда - учишся, подключаешь по 10 библиотек для отслеживания всех возможных ошибок, а тут когда проделанна годовая работа - "On Error" оказывается не просто НЕ частью Commondialog, это вообще самостоятельная функция, которую можно впихнуть в процедуру для отслеживания ошибок! lytgeygen чтож вы ету тему год назад не подняли?...
                  Цитата VisualProg @
                  "On Error" оказывается не просто НЕ частью Commondialog, это вообще самостоятельная функция


                  Я тебя еще больше удивлю -- On Error не функция, это конструкция языка.
                    VisualProg, если ты не заметил, "On Error" по дефолту синеньким выделяется)
                      Цитата ANDLL @
                      Аналогично и в случае с new

                      не совсем.


                      Если библиотека подключена к проекту через References — запуск программы в системе, где эта библиотека не установлена, вызовет неустранимую ошибку СРАЗУ, ещё до начала выполнения кода программы.
                      Если же библиотека не подключена в References, а объекты создаются через CreateObject или GetObject — программа нормально запустится, а ошибка будет в момент попытки создания объекта.

                      например, так:
                      ExpandedWrap disabled
                        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




                      или так:
                      ExpandedWrap disabled
                        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
                        Цитата Змей @
                        Если библиотека подключена к проекту через References — запуск программы в системе, где эта библиотека не установлена, вызовет неустранимую ошибку СРАЗУ, ещё до начала выполнения кода программы.


                        офигеть какие новости.
                          nash, иди нафиг :) Я не для тебя говорю, а для тех, кому это и правда новость. И таких людей немало.

                          M
                          Кстати, nash, я обязан обратить ваше внимание на тот факт, что своим постом #11 вы грубо нарушаете Правила, п.5
                            Цитата Змей @
                            кому это и правда новость


                            да потому что это не новость, а фигня (неправда).
                              .

                              Добавлено
                              Цитата nash @
                              неправда

                              дааа???

                              батенька, в своём стремлении доказать кому-то свою крутизну вы уже совсем заврались.

                              Если программа скомпилирована с заявленной в References библиотекой, то на машине, где этой библиотеки нет, она не запустится СОВСЕМ.

                              nash, у меня и раньше были сомнения в вашей компетентности, но теперь вы их окончательно развеяли. Теперь я знаю точно: Вы некомпетентны.

                              сорри за оффтоп.
                                Цитата nash @
                                да потому что это не новость, а фигня (неправда).


                                Эх, моя невнимательность. Мне чего-то показалось, что речь идет о Components. Хотя, и в этом случае, теоретически, можно выйти из положения, установив стартовой Sub Main.



                                Цитата Змей @
                                злостный оффтоп, п5, плюс личная переписка, п9.


                                Злостный оффтоп пошел от тебя, как и личная переписка. nash высказался по теме, и он прав
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.0913 ]   [ 16 queries used ]   [ Generated: 24.07.26, 11:54 GMT ]