Visual Basic: новости сайтов, советы, примеры кодов.
Выпуск 5.


VB Студия VB Line
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Какой версией Visual Basic Вы пользуетесь?
VB 3
VB 4
VB 5
VB 6

Установлен ли у Вас Service Pack? Если да, то какой?
Нет
SP1
SP2
SP3
SP4
SP5


Рассылки Subscribe.Ru
Новости сайта VBline и советы программистам
Мир программирования на Visual BASIC 5.0 и HTML.
Несколько слов от автора:

   Это уже пятый, юбилейный выпуск рассылки. Несколько дней назад количество подписчиков перевалило за тысячу и теперь составляет 1555.
   Завтра первое сентября... Грустно.
   Присылайте материалы. Всё, что можно подогнать под тематику рассылки и сайта я с удовольствием опубликую в рассылке, или на сайте.

   Внимание: Требуется человек со знанием английского языка для перевода документации. Со всеми вопросами бращаютесь по этому адресу.


Содержание выпуска




Новости сайта VB Студия

  • 31 августа 2001 года - Небольшое обновление. В раздел Библиотека кодов добавлено 2 кода. В раздел Хитрости добавлена одна хитрость.
    Вышел юбилейный пятый выпуск рассылки. Число подписчиков - 1555.
  • 10 августа 2001 года - Обновление коснулось только статей. Но зато сколько статей! Добавил статьи:
    Visual Basic позволяет использовать Текстовый файл, как база данных.
    Автор: М. Эскин
    SQL - Язык запросов: Простое использование оператора SELECT
    Автор: Сартин Вячеслав
    Введение в ADO+ (FAQ)
    Автор: Сартин Вячеслав
    Использование ADODC совместно с DBGrid
    Автор: Tower


    наверх


    Новости сайта VB Line

       26 августа 2001 г. Появились отличные контролы в ActiveX: ActiveLink, ColorPicker и несколько других работ от Marco Bellinaso. А в Статьи добавлены еще четыре работы Михаила Эскина. Обязательно туда загляните.
       25 августа 2001 г. Новых материалов немного. В Статьи добавлена работа Михаила Эскина по поводу баз данных, точнее на тему использования вместо базы данных обычный текстовый файл. На сайте исправлены некоторые из неработающих ссылок. Ну и, конечно, вышел очередной, уже седьмой, выпуск рассылки. Завтра будет большое обновление сайта!

    наверх


    Сохранение и чтение данных INI файла.

    Option Explicit

    Declare Function GetPrivateProfileString Lib "kernel32.dll" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
    Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

    Public Function GetString(INIFile As String, Section As String, Key As String, Default As String)
    Dim slength As Long
    Dim temp As String * 255
    temp = Space(256)
    slength = GetPrivateProfileString(Section, Key, Default, temp, 255, INIFile)
    GetString = Left(temp, slength)
    End Function

    Public Function SetString(INIFile As String, Section As String, Key As String, Value As String)
    Dim n As Integer
    Dim temp As String
    temp = Value
    For n = 1 To Len(Value)
    If Mid$(Value, n, 1) = vbCr Or Mid$(Value, n, 1) = vbLf Then Mid$(Value, n) = ""
    Next n
    n = WritePrivateProfileString(Section, Key, temp, INIFile)
    End Function

    наверх


    Создание STANDALONE библиотеки типов

    Когда Вы создаете OCX или DLL сервер, то Visual Basic встраивает библиотеку типов сервера в исполняемый файл, не генерируя при этом .TLB библиотеку. Но, бывают случаи, когда такая библиотека Вам потребуется. Вы можете принудительно заставить VB создать такую библиотеку отдельно от исполняемого файла. Для этого в VB5 (например), зайдите на вкладку Component диалогового окна Properties меню Project и отметьте там соответствующий параметр.

    наверх


    Как программно скачать файл из Internet

    Новый совет от
    Антона Дёмина посвящен вопросу связи и Internet. Вам никогда не приходилось принудительно разрывать связь с провайдером Интернет? Ну, тогда ещё всё впереди. Ниже приведен код для этой процедуры.

    Public Const RAS_MAXENTRYNAME As Integer = 256
    Public Const RAS_MAXDEVICETYPE As Integer = 16
    Public Const RAS_MAXDEVICENAME As Integer = 128
    Public Const RAS_RASCONNSIZE As Integer = 412
    Public Const ERROR_SUCCESS = 0&
    Public Type RasEntryName
    dwSize As Long
    szEntryName(RAS_MAXENTRYNAME) As Byte
    End Type
    Public Type RasConn
    dwSize As Long
    hRasConn As Long
    szEntryName(RAS_MAXENTRYNAME) As Byte
    szDeviceType(RAS_MAXDEVICETYPE) As Byte
    szDeviceName(RAS_MAXDEVICENAME) As Byte
    End Type
    Public Declare Function RasEnumConnections Lib "rasapi32.dll" Alias "RasEnumConnectionsA" (lpRasConn As Any, lpcb As Long, lpcConnections As Long) As Long
    Public Declare Function RasHangUp Lib "rasapi32.dll" Alias "RasHangUpA" (ByVal hRasConn As Long) As Long
    Public gstrISPName As String
    Public ReturnCode As Long

    Public Sub HangUp()
    Dim i As Long
    Dim lpRasConn(255) As RasConn
    Dim lpcb As Long
    Dim lpcConnections As Long
    Dim hRasConn As Long

        lpRasConn(0).dwSize = RAS_RASCONNSIZE
        lpcb = RAS_MAXENTRYNAME * lpRasConn(0).dwSize
        lpcConnections = 0
        ReturnCode = RasEnumConnections(lpRasConn(0), lpcb, lpcConnections)
        If ReturnCode = ERROR_SUCCESS Then
            For i = 0 To lpcConnections - 1
                If Trim(ByteToString(lpRasConn(i).szEntryName)) = Trim(gstrISPName) Then
                     hRasConn = lpRasConn(i).hRasConn
                     ReturnCode = RasHangUp(ByVal hRasConn)
                End If
            Next i
        End If
    End Sub

    Public Function ByteToString(bytString() As Byte) As String
    Dim i As Integer

        ByteToString = ""
        i = 0
        While bytString(i) = 0&
            ByteToString = ByteToString & Chr(bytString(i))
            i = i + 1
        Wend
    End Function

    наверх


    Опасайтесь ошибки VB с именованием каталогов!

    Если Вы не в первый раз пишите программу на VB, то наверняка заметили, что в VB присутствует ошибка при наименовании каталогов. Так в имени корневого каталога диска присутствует символ "\", а в остальных случаях нет. Поэтому, если Вы хотите, чтобы Ваша программа корректно работала, то воспользуйтесь ниже приведенной функцией: Function NormalizePath(sPath As String) As String
    If Right$(sPath, 1) <> "\" Then 'если \ уже есть, то ничего не менять
       NormalizePath = sPath & "\"
    Else 'символа \ нет, добавить
       NormalizePath = sPath
    End If
    End Function

    наверх


    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:


    Автор вопроса:
    Vasiliy

    Ответ ожидается по этому адресу

       Как соединиться с другим компом через winsock control?


    Автор вопроса: Yakobs

    Ответ ожидается по этому адресу

       Создал OCX, в который входит ComboBox. Список ComboBox-а заполняется из текстового файла (кодировка ANSI). Компонент предназначен для работы в системе визуализации WinCC (вряд ли это что-то кому-то скажет, но чего в жизни не бывает...). Под NT всё работает корректно. Под Windows_98 при вместо кирилицы отображаются иероглифы (буквы латинского алфавита с надбуквенными символами). При работе с кодировкой OEM наблюдалась аналогичная картина. Вставлял компонент в Internet Explorer - всё нормально отЗаранее спасибо всем принявшим участе в решении проблемы.


    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

       Как написать код преобразования числа в текст типа: 23 456,23 руб. преобразуется в "Двадцать три тысячи четыреста пятьдесят шесть рублей, 23 коп.


    Автор вопроса: Валерий

    Ответ ожидается по этому адресу

       Вопрос по VBA. Как вставить кодом (MS Access 2000) OLE-объект (f.e., jpg) в Recordset ?


    Автор вопроса: Тимур

    Ответ ожидается по этому адресу

       Возможно ли с Помощью VB соядать программу дозвона по ppp-протоколу? Хотелось видеть исходный код, если это возможно.


    Автор вопроса: Павел

    Ответ ожидается по этому адресу

       Когда пользователь нажимает кнопку дверцы CD-ROM, нужно перехватить команду, выполнить заданные операции и только тогда открыть дверцу. Кто подскажет, как это сделать?


    Автор вопроса: Vasiliy

    Ответ ожидается по этому адресу

       Люди!!! Кто знает как сделать графическое сопровождение музыкального файла как в Win. Media Player.




    Ответы:


    Вопрос:

       Есть база данных Stat1.mdb . В ней таблица Statistics и в ней 3 поля SpyLogHits (Numeric), SpyLogHosts (Numeric), sDate (Date/Time). На форме стоит MSFlexGrid1. Нужно используя DAO программно запихать информацию из таблицы в MSFlexGrid1. Как это сделать?

    Ответ:

    Автор ответа hamzat

    textarea1=Sub GetData()
    Dim con, rs
    Set con = DAO.OpenDatabase("C:\Documents and Settings\hamzat\My Documents\stat1.mdb")
    Set rs = con.OpenRecordset("select * from Statistics")
    MsFelxGrid1.Rows = 1
    MsFelxGrid1.Cols = 3
    MsFelxGrid1.TextMatrix(0, 0) = "SpyLogHits"
    MsFelxGrid1.TextMatrix(0, 1) = "SpyLogHosts"
    MsFelxGrid1.TextMatrix(0, 2) = "sDate"
    While Not rs.EOF
    MsFelxGrid1.Rows = MsFelxGrid1.Rows + 1
    MsFelxGrid1.TextMatrix(MsFelxGrid1.Rows - 1, 0) = rs("SpyLogHits")
    MsFelxGrid1.TextMatrix(MsFelxGrid1.Rows - 1, 1) = rs("SpyLogHosts")
    MsFelxGrid1.TextMatrix(MsFelxGrid1.Rows - 1, 2) = rs("sDate")
    rs.MoveNext
    Wend
    Set rs = Nothing
    Set con = Nothing
    End Sub


    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх



  • Выпуск подготовили:

    Сурменок Павел и Шатрыкин Иван