На главную Наши проекты:
Журнал   ·   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.
  
> Проблема с 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 высказался по теме, и он прав
                                  Цитата B.V. @
                                  А явного нарушения правил не было

                                  было. #11 — бессодержательный и неинформативный пост, направленный лично против меня. Все знают о той нездоровой неприязни, котороую питает ко мне товарисч насх, и которая заставляет его вступать со мной в спор всякий раз, как он видит мой пост...

                                  Цитата B.V. @
                                  Злостный оффтоп пошел от тебя
                                  мой оффтоп был не злостный, а был лишь вполне естественным развитием темы в рамках сабжа топика и раздела.

                                  Цитата B.V. @
                                  и личная переписка
                                  пошла от насха, #11

                                  Цитата B.V. @
                                  nash высказался по теме
                                  если я оффтоплю, то ответ мне не может быть "в тему", как ни старайся :D

                                  Цитата B.V. @
                                  и он прав
                                  он не прав.
                                    Цитата Змей @
                                    вызовет неустранимую ошибку СРАЗУ, ещё до начала выполнения кода программы


                                    2BV: Особенно порадовало.

                                    2Змей: Да какая неприязнь? Мне по-фигу. Трепаться просто надо меньше. Займись делом и все устаканится.
                                      Цитата Змей @
                                      #11 — бессодержательный и неинформативный пост, направленный лично против меня.


                                      #11 содержательный пост, единственный его недостаток -- неоднозначность.

                                      Цитата Змей @
                                      мой оффтоп был не злостный, а был лишь вполне естественным развитием темы в рамках сабжа топика и раздела


                                      С каких пор посыл "нафиг" считается "вполне естественным развитием темы"?

                                      Цитата Змей @
                                      он не прав.


                                      http://www.microsoft.com/Rus/Msdn/Activ/MSVB/Archive/Components/reference.mspx
                                      Освежи память. Раннее и позднее связывание в VB отличаются лишь типами и способом объявления переменных

                                      Цитата Змей @
                                      Думаю, лучше сделать так


                                      Нет, лучше сделать так: я оставляю все как есть, ты осознаешь свое невежество и публично извиняешься, и не только за невежество, но и за злоупотребление властью. В противном случае буду вынужден принять меры
                                        Цитата B.V. @
                                        злоупотребление властью.

                                        Злоупотребления НЕ БЫЛО, так что извиняться не за что. Я не применял инструменты воздействия, а только сделал оправданное замечание: независимо от того, прав насх по сути или нет, его пост бессодержателен и неинформативен. Если бы он внятно сказал "я считаю, что ты неправ" — я бы не имел к нему претензий. а "офигеть какие новости" — это даже не оффтоп, а вообще флуд.
                                        Далее, одновременно я обратился к модераторам раздела посредством стандартной формы вызова, но ввместо наведения порядка в теме получил только ещё одну порцию флуда, теперь от модератора раздела...

                                        Цитата B.V. @
                                        С каких пор посыл "нафиг" считается "вполне естественным развитием темы"?

                                        Вот тут каюсь, ибо грешен. Отвечать грубостью на глупость мне не следовало. Обязательно извинюсь, сразу, как только получу от насха извинения за безосновательно обвинение не то во во лжи, не то в неграмотности... (#14)

                                        Цитата B.V. @
                                        ты осознаешь свое невежество
                                        вот, читай аттач... Сорри за невысокое качество, мой сканер плохо берёт книги.
                                        Это скан страницы из книги К.Гетца и М.Гилберта "Програмирование на Visual Basic 6 и VBA". Актуален последний абзац.
                                        Прикреплённый файлПрикреплённый файл________________.tif (74.09 Кбайт, скачиваний: 159)
                                          Змей, ты теоретик от которого толку только студентам в курсовую пору.
                                          Ну просто знай свое место и не ругайся так. А то просто противно читать.
                                            Цитата Змей @
                                            Злоупотребления НЕ БЫЛО, так что извиняться не за что


                                            Злоупотребление было, и это не обсуждается.

                                            Цитата Змей @
                                            вот, читай аттач...


                                            Прочел. И что? Не заметил ни слова об обработке ошибок при создании объектов, кода тоже не заметил. А то, что проект компилироваться не будет, по-моему, просто очевидно. Что там имел ввиду автор под "не будет ... выполняться", известно только ему.
                                            BlackSnake, а ты читал хоть статью по моей ссылке? Единственная ситуация, когда программа не запустится без библиотеки -- когда в References подключена tlb, описывающая функции, а не COM-объекты, и в проекте эти функции используются. В этом случае функции добавятся в секцию импорта, и уже на этапе загрузки PE будет выдано сообщение о недостающей библиотеке. Но ведь мы говорим исключительно об объектах, не так ли?

                                            Цитата Змей @
                                            B.V. не очень хочу тебя расстраивать


                                            У тебя не получилось меня расстроить, не переживай
                                              Простите за офф топ:
                                              Змей, B.V. nash Чем ругаться лучше бы выложили книженцию ;)
                                                Учитывая что раздел о VB6, И что программы на Vb6 обычно распространяют в виде exe-файлов, а не в виде зипа с сорцами, твоя картинка неуместна.
                                                И мне с трудом вспоминается один случай, когда кое кто так же говорил ерунду, а потом пытался натравить административные санкции на возмутителя, посмевшего отметить факт наличия последней
                                                  BlackSnake поставлен на премод.
                                                    кстати, более интересный вопрос:

                                                    запуск COM-EXE, которому не удается самозарегистрироваться.
                                                    при этом появляется противное сообщение. как бы этого избежать.
                                                      Какой запуск? Standalone или com?
                                                        Цитата domencom @
                                                        Змей, B.V. nash Чем ругаться лучше бы выложили книженцию
                                                        Извини, но у меня она бумажная. Сканить моим сканером — долго, нудно и лениво — не говоря уж о незаконности "выкладывания книженций".
                                                          Проблема решена! :)
                                                            Цитата ANDLL @
                                                            Какой запуск? Standalone или com?


                                                            угу, Standalone
                                                              :offtop:
                                                              Желающие поболтать про виды связывания могут создать новый топик.
                                                              Желающие выяснить отношения могут общаться посредством PM.
                                                              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                              0 пользователей:


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