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


VBNet VBMania
Голосование:

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

Нет тем.

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


Рассылки Subscribe.Ru
Старые игры

Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill

Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
  • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

       Все с субботников вернулись? :-)))
    Читайте!


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




    Книги

    ADO и Visual Basic. Руководство разработчика

    В книге описано использование технологии доступа к данным (ADO) с помощью основного инструмента разработки приложений Microsoft - Visual Basic 6.0. Из книги вы узнаете, как можно исследовать источники данных при помощи окна Data View, как создавать формы для ввода и запроса данных, используя связанные элементы управления, и подсоединяться к источникам данных со сложной иерархической структурой средствами Data Environment. Далее вы изучите, как можно, используя Data Report, представлять информацию в форме, подходящей для печати, или как следует исполнять некоторые, наиболее широко распространенные задачи, связанные с обработкой данных, используя ADO внутри кода Visual Basic. В последних главах книги рассмотрены дополнительные операции, используемые в коде, в том числе формирование данных, для создания иерархических наборов записей, применение ADO в сети Internet и даже создание собственных источников данных. Чтобы более полно использовать средства ADO для извлечения информации из различных источников, в приложении к книге вы найдете справочник по языку SQL, в котором обсуждаются основы работы с оператором SQL SELECT.


    Автор: Гандерлой М.
    Издательсвто: Энтроп, Век
    Год издания: 2001
    Кол-во страниц: 336
    Стоимость: 177 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Excel, VBA, Internet в экономике и финансах

    Книга является руководством по использованию Microsoft Excel, разработке офисных бизнес-приложений средствами VBA и конструированию Web-страниц на базе DHTML и VBScript. Рассматриваются приемы создания отчетной финансовой и экономической документации средствами MS Excel, способы анализа и обработки собранной информации для принятия на ее основе оптимального решения; даются ответы на вопросы, которые возникают у программиста при разработке автоматизированных и интегрированных систем с помощью VBA; описываются особенности конструирования пользовательских элементов управления ActiveX, а также написания Windows-сценариев. Большое внимание уделено принципам создания интерактивных Web-страниц, виртуальных каталогов и магазинов. Книга содержит уникальную коллекцию типичных примеров. Почти каждая глава заканчивается списком упражнений, способствующих закреплению материала


    Автор: Гарнаев А
    Издательсвто: BHV - Санкт - Петербург
    Год издания: 2001
    Кол-во страниц: 816
    Стоимость: 230 р.
    Формат: 70х100/16
    Переплёт: мягкий

    MCSD. Сертификационный экзамен 70-175. Разработка распределенных приложений на Visual Basic 6.0. Учебный курс (+ CD-ROM)

    Настоящий учебный курс рекомендован корпорацией Microsoft как официальное пособие для подготовки к экзамену 70-175 «Designing and Implementing Distributed Applications with Microsoft Visual Basic 6.0» по программе сертификации разработчиков программных решений на основе продуктов Microsoft (Microsoft Certified Solutions Developer, MCSD). Эта книга познакомит Вас с основными понятиями, концепциями и методами, необходимыми для разработок распределенных программных решений на базе Visual Basic 6.0.


    Автор: MCSD Training Kit
    Издательсвто: Русская Редакция
    Год издания: 2000
    Кол-во страниц: 400
    Стоимость: 272 р.
    Формат: 70х100/1670х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 5.0

    В книге рассматривается новая пятая версия Microsoft Visual Basic - языка программирования, являющегося фактическим стандартом визуального проектирования приложений. Описываются общие черты Visual Basic, реализованные в нем концепции объектно-ориентированного программирования, среда разработки (IDE). Далее рассматривается объектно-ориентированная модель Visual Basic и доступные разработчику объектные компоненты. Подробно описываются технологии программирования на языке Visual Basic и SQL, отладка и оптимизация кода приложения, вопросы компиляции исполняемых модулей. В последующих главах освещаются практические вопросы построения приложений - работа с текстом и графикой, механизмы доступа и управления данными, работа с внешними базами данных и создание приложений клиент/сервер. Книга предназначена для широкого круга программистов, работающих в области обработки данных и информационных систем.


    Автор: Шмидт В
    Издательсвто: ABF
    Год издания: 1997
    Кол-во страниц: 688
    Стоимость: 85 р.
    Формат: 84x108/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0

    Нет описания


    Автор: Лабор В, Макарчук Д
    Издательсвто: нет данных
    Год издания: 2001
    Кол-во страниц: 160
    Стоимость: 60 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0. Мастерская разработчика (+ CD-ROM)

    Книга состоит из 3 частей (34 главы) и предметного указателя. Написанная живо и доходчиво, она позволит освоить множество полезных приемов программирования, в том числе объектно-ориентированного, и научит, как создавать 32-разрядные приложения для Windows 95/98 и Windows NT — от экранных заставок до программ, ориентированных на Интернет. Кроме того, Вы узнаете, как расширить возможности языка за счет функций Win32 API и воспользоваться преимуществами технологии ActiveX.


    Автор: Джон Кларк Крейг, Джефф Уэбб
    Издательсвто: Русская Редакция
    Год издания: 2001
    Кол-во страниц: 720
    Стоимость: 272 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    VB Script и ActiveX

    Книга предназначена для разработчиков Web - приложений на языке VBScript, желающих повысить свой профессиональный уровень и стать экспертами в этой области. В ней подробно рассказывается о новых возможностях VBScript, включая использование именованных констант, функций, переменных и коллекций, приводится вся необходимая информация о технологии ActiveX, принципах взаимодействия VBScript и Visual Basic при создании приложений, работающих на сервере. Прочитав эту книгу, вы научитесь использовать звуковые эффекты, создавать анимированную графику, строить формы для ввода данных, узнаете, как с помощью VBScript создать в Web электронный магазин и отслеживать число посетителей и деланные ими покупки. Вы даже сумеете написать увлекательную мультимедийную игру для Web.


    Автор: Скотт Палмер
    Издательсвто: Питер
    Год издания: 1999
    Кол-во страниц: 368
    Стоимость: 94 р.
    Формат: 70х100/16
    Переплёт: мягкий

    VBA 2000. Самоучитель

    В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/98 с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее. Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.


    Автор: Кузьменко В
    Издательсвто: Бином
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 116 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6 Desktop. Экзамен 70-176

    Книги серии `Экзамен – экстерном` представляют собой удобные, сжатые, хорошо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга `Visual Basic 6.0 Desktop. Экзамен 70-176` содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными - не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации по Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с `официальной` информацией.


    Автор: Майкл Макдоналд
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 608
    Стоимость: 123 р.
    Формат: 60x90/16
    Переплёт: мягкий

    Visual Basic 6. Руководство разработчика (+ CD-ROM)

    Эта книга, написанная известным специалистом и неутомимым пропагандистом Visual Basic, представляет собой прекрасный путеводитель по одному из наиболее популярных визуальных средств разработки Windows-приложений. Подробно освещаются такие ключевые темы программирования на Visual Basic, как проектирование и использование элементов ActiveX, программирование баз данных и разработка Web-приложений. Несомненный интерес представляют главы, посвященные работе с графикой. Большое количество тщательно продуманных примеров облегчает восприятие материала. Подбор материала и стиль изложения делают издание интересным и полезным для программистов разных уровней.


    Автор: Евангелос Петрусос
    Издательсвто: BHV, Ирина, SYBEX Inc
    Год издания: 2000
    Кол-во страниц: 1072
    Стоимость: 267 р.
    Формат: 70x100/32
    Переплёт: твёрдый


    Остальные книги о VB можно найти
    здесь.

    наверх


    Интернет: онлайн или офлайн

    Данный пример покажет, есть ли в данное время активное соединение с Интернетом

    Private Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As Long
    Private Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long
    Private Const RAS95_MaxEntryName = 256
    Private Const RAS95_MaxDeviceType = 16
    Private Const RAS95_MaxDeviceName = 32
    Private Type RASCONN95
    dwSize As Long
    hRasCon As Long
    szEntryName(RAS95_MaxEntryName) As Byte
    szDeviceType(RAS95_MaxDeviceType) As Byte
    szDeviceName(RAS95_MaxDeviceName) As Byte
    End Type
    Private Type RASCONNSTATUS95
    dwSize As Long
    RasConnState As Long
    dwError As Long
    szDeviceType(RAS95_MaxDeviceType) As Byte
    szDeviceName(RAS95_MaxDeviceName) As Byte
    End Type

    Public Function IsConnected() As Boolean
    Dim TRasCon(255) As RASCONN95
    Dim lg As Long
    Dim lpcon As Long
    Dim RetVal As Long
    Dim Tstatus As RASCONNSTATUS95
    TRasCon(0).dwSize = 412
    lg = 256 * TRasCon(0).dwSize
    RetVal = RasEnumConnections(TRasCon(0), lg, lpcon)
    Tstatus.dwSize = 160
    RetVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)
    If Tstatus.RasConnState = &H2000 Then
    IsConnected = True
    Else
    IsConnected = False
    End If
    End Function

    Private Sub Form_Load()
    'если есть соединение, то IsConnected() = True, иначе False
    MsgBox IsConnected()
    End Sub

    наверх


    Получение списка всех интернет-соединений

    Добавьте на форму CommandButton и ListBox. Вставьте следующий код, запустите программу на выполнение. В ListBox'е вы получите имена всех интернет-соединений. При нажатии на CommandButton на форме будет напечатано имя интернет-соединения по умолчанию.

    Const REG_NONE = 0&
    Const REG_SZ = 1&
    Const REG_EXPAND_SZ = 2&
    Const REG_BINARY = 3&
    Const REG_DWORD = 4&
    Const REG_DWORD_LITTLE_ENDIAN = 4&
    Const REG_DWORD_BIG_ENDIAN = 5&
    Const REG_LINK = 6&
    Const REG_MULTI_SZ = 7&
    Const REG_RESOURCE_LIST = 8&
    Const REG_FULL_RESOURCE_DESCRIPTOR = 9&
    Const REG_RESOURCE_REQUIREMENTS_LIST = 10&

    Public rgeEntry$
    Public rgeDataType&
    Public rgeValue$
    Public rgeMainKey&
    Public rgeSubKey$

    Const KEY_QUERY_VALUE = &H1&
    Const KEY_SET_VALUE = &H2&
    Const KEY_CREATE_SUB_KEY = &H4&
    Const KEY_ENUMERATE_SUB_KEYS = &H8&
    Const KEY_NOTIFY = &H10&
    Const KEY_CREATE_LINK = &H20&
    Const READ_CONTROL = &H20000
    Const WRITE_DAC = &H40000
    Const WRITE_OWNER = &H80000
    Const SYNCHRONIZE = &H100000
    Const STANDARD_RIGHTS_REQUIRED = &HF0000
    Const STANDARD_RIGHTS_READ = READ_CONTROL
    Const STANDARD_RIGHTS_WRITE = READ_CONTROL
    Const STANDARD_RIGHTS_EXECUTE = READ_CONTROL
    Const KEY_READ = STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY
    Const KEY_WRITE = STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY
    Const KEY_EXECUTE = KEY_READ
    Private Type FILETIME
    lLowDateTime As Long
    lHighDateTime As Long
    End Type
    Const HKEY_CLASSES_ROOT = &H80000000
    Const HKEY_CURRENT_USER = &H80000001
    Const HKEY_LOCAL_MACHINE = &H80000002
    Const HKEY_USERS = &H80000003
    Const HKEY_PERFORMANCE_DATA = &H80000004
    Const HKEY_CURRENT_CONFIG = &H80000005
    Const HKEY_DYN_DATA = &H80000006

    Private Declare Function RegOpenKeyEx& Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey&, ByVal lpszSubKey$, dwOptions&, ByVal samDesired&, lpHKey&)
    Private Declare Function RegCloseKey& Lib "advapi32.dll" (ByVal hKey&)
    Private Declare Function RegQueryValueEx& Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey&, ByVal lpszValueName$, ByVal lpdwRes&, lpdwType&, ByVal lpDataBuff$, nSize&)
    Private Declare Function RegEnumKeyEx& Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey&, ByVal dwIndex&, ByVal lpname$, lpcbName&, ByVal lpReserved&, ByVal lpClass$, lpcbClass&, lpftLastWriteTime As FILETIME)
    Private Declare Function RegQueryInfoKey& Lib "advapi32.dll" Alias "RegQueryInfoKeyA" (ByVal hKey&, ByVal lpClass$, lpcbClass&, ByVal lpReserved&, lpcSubKeys&, lpcbMaxSubKeyLen&, lpcbMaxClassLen&, lpcValues&, lpcbMaxValueNameLen&, lpcbMaxValueLen&, lpcbSecurityDescriptor&, lpftLastWriteTime As FILETIME)

    Public Function GetRegValue(keyroot As Variant, subkey As Variant, valname As String)
    Const KEY_ALL_ACCESS As Long = &HF0063
    Const ERROR_SUCCESS As Long = 0
    Const REG_SZ As Long = 1
    Dim hsubkey As Long, dwType As Long, sz As Long
    Dim R As Long
    R = RegOpenKeyEx(keyroot, subkey, 0, KEY_ALL_ACCESS, hsubkey)
    sz = 256
    v$ = String$(sz, 0)
    R = RegQueryValueEx(hsubkey, valname, 0, dwType, ByVal v$, sz)
    If R = ERROR_SUCCESS And dwType = REG_SZ Then
    retval = Left$(v$, sz)
    GetRegValue = retval
    Else
    retval = "--Not String--"
    End If
    R = RegCloseKey(hsubkey)
    End Function
    Public Sub rgeClear()
    rgeMainKey = 0
    rgeSubKey = ""
    rgeValue = ""
    rgeDataType = 0
    rgeEntry = ""
    End Sub
    Function RegEnumKeys&(bFullEnumeration As Boolean)
    Dim sRoot$, sRoot2$
    Dim lRtn&
    Dim hKey&
    Dim strucLastWriteTime As FILETIME
    Dim sSubKeyName$
    Dim sClassString$
    Dim lLenSubKey&
    Dim lLenClass&
    Dim lKeyIndx&
    Dim lRet&
    Dim hKey2&
    Dim sSubKey2$
    Dim sNewKey$
    Dim sClassName$
    Dim lClassLen&
    Dim lSubKeys&
    Dim lMaxSubKey&
    Dim sMaxSubKey$
    Dim lMaxClass&
    Dim sMaxClass$
    Dim lValues&
    Dim lMaxValueName&
    Dim lMaxValueData&
    Dim lSecurityDesc&
    lRtn = RegOpenKeyEx(rgeMainKey, rgeSubKey, 0&, KEY_READ, hKey)
    sClassName = Space$(255)
    lClassLen = CLng(Len(sClassName))
    lRet = RegQueryInfoKey(hKey, sClassName, lClassLen, 0&, lSubKeys, lMaxSubKey, _
    lMaxClass, lValues, lMaxValueName, lMaxValueData, lSecurityDesc, strucLastWriteTime)
    sMaxSubKey = Space$(lMaxSubKey + 1)
    sMaxClass = Space$(lMaxClass + 1)
    lKeyIndx = 0&
    Do While lRtn = ERROR_SUCCESS
    ReTryKeyEnumeration:
    sSubKeyName = sMaxSubKey
    lLenSubKey = lMaxSubKey
    sClassString = sMaxClass
    lLenClass = lMaxClass
    lRtn = RegEnumKeyEx(hKey, lKeyIndx, sSubKeyName, lLenSubKey, 0&, sClassString, _
    lLenClass, strucLastWriteTime)
    If InStr(sSubKeyName, Chr$(0)) > 1 Then
    sSubKeyName = Left$(sSubKeyName, InStr(sSubKeyName, Chr$(0)) - 1)
    End If
    If lRtn = ERROR_SUCCESS Then
    Form1.List1.AddItem sSubKeyName
    lNewKey = lNewKey + 1
    sNewKey = "A" & Format$(lNewKey, "000000")
    If bFullEnumeration = True Then
    sSubKey2 = sSubKeyName
    If rgeSubKey <> "" Then
    sSubKey2 = Trim(rgeSubKey) & "\" & sSubKeyName
    End If
    lRet = RegOpenKeyEx(rgeMainKey, sSubKey2, 0&, KEY_READ, hKey2)
    Else
    Exit Do
    End If
    lKeyIndx = lKeyIndx + 1
    ElseIf lRtn = ERROR_MORE_DATA Then
    lMaxSubKey = lMaxSubKey + 5
    lMaxClass = lMaxClass + 5
    sMaxSubKey = Space$(lMaxSubKey + 1)
    sMaxClass = Space$(lMaxClass + 1)
    GoTo ReTryKeyEnumeration
    ElseIf lRtn = ERROR_NO_MORE_ITEMS Then
    lRtn = ERROR_SUCCESS
    Exit Do
    Exit Do
    End If
    Loop
    RegEnumKeys = lRtn
    lRtn = RegCloseKey(hKey)
    End Function

    Private Sub Form_Load()
    rgeMainKey = HKEY_CURRENT_USER
    rgeSubKey$ = "RemoteAccess\Profile"
    RegEnumKeys True
    End Sub
    Private Sub Command1_Click()
    Print GetRegValue(HKEY_CURRENT_USER, "RemoteAccess", "Default")
    End Sub

    наверх


    Имя текущего соединения с инетом

    Расположите на форме элемент CommandButton.

    Private Const RAS_MAXENTRYNAME As Integer = 256
    Private Const RAS_MAXDEVICETYPE As Integer = 16
    Private Const RAS_MAXDEVICENAME As Integer = 128
    Private Const RAS_RASCONNSIZE As Integer = 412
    Private 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
    Private Declare Function RasEnumConnections Lib "rasapi32.dll" Alias "RasEnumConnectionsA" (udtRasConn As Any, lpcb As Long, lpcConnections As Long) As Long

    Private Sub Command1_Click()
    Dim udtRasConn(255) As RASCONN, countConn As Long
    Dim Ret As Long, b As Long
    udtRasConn(0).dwSize = RAS_RASCONNSIZE
    Ret = RasEnumConnections(udtRasConn(0), RAS_MAXENTRYNAME * udtRasConn(0).dwSize, countConn)
    If Ret = 0 Then
    For b = 0 To countConn - 1
    MsgBox "Текущее соединение: " & StrConv(udtRasConn(b).szEntryName(), vbUnicode)
    Next b
    End If
    End Sub

    наверх


    Запуск почты и web-узла

    Данный пример покажет, как можно создать стандартное окно письма и запустить броузер для просмотра определенной страницы в Интернете.

    'Вариант 1
    'Добавьте на форму 2 элемента Label, скопируйте и вставьте на форму следующий код:
    Private Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)
    Private Sub Form_Load()
    Label1.Caption = "http://www.vbnet.ru"
    Label2.Caption = "bigsharig@mtu-net.ru"
    End Sub
    Private Sub Label1_Click()
    Call ShellExecute(0, "Open", Label1.Caption, "", "c:\", 1)
    End Sub
    Private Sub Label2_Click()
    Call ShellExecute(0, "Open", "mailto:" + Label2.Caption + "?Subject=" + "Письмо для Гарика", "", "", 1)
    End Sub

    'Вариант 2
    Call Shell("Start.exe " & "http://www.vbnet.ru", 0)
    Call Shell("Start.exe " & "mailto:bigsharig@mtu-net.ru", 0)

    'Вариант 3
    'Добавьте на форму 2 элемента Label, скопируйте и вставьте на форму следующий код:
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Private Sub ExecuteLink(ByVal sLinkTo As String)
    On Error Resume Next
    Dim lRet As Long
    Dim lOldCursor As Long
    lOldCursor = Screen.MousePointer
    Screen.MousePointer = vbHourglass
    lRet = ShellExecute(0, "open", sLinkTo, "", vbNull, SW_SHOWNORMAL)
    If lRet >= 0 And lRet <= 0 Then
    Screen.MousePointer = vbDefault
    MsgBox "Error Opening Link to " & sLinkTo & vbCrLf & vbCrLf & Err.LastDllError, , "frmAbout::ExecuteLink"
    End If
    Screen.MousePointer = vbDefault
    End Sub
    Private Sub Label1_Click()
    ExecuteLink "mailto:bigsharig@mtu-net.ru"
    End Sub
    Private Sub Label2_Click()
    ExecuteLink "http://www.vbnet.ru"
    End Sub

    наверх


    Является ли строковая переменная e-mail-адресом

    Этот код использует VBScript.dll
    Вы можете загрузить его с
    www.microsoft.com/msdownload/vbscript/scripting.asp

    Добавьте Microsoft VBScript Regular Expressions reference в ваш проект (выберите Project->References, поставьте галочку на Microsoft VBScript Regular Expressions CheckBox и нажмите OK).

    RegExp - тип переменной, которую вы хотите проверить: Email-адрес, телефонный номер, любой другой формат.

    Private Sub Form_Load()
    Dim myReg As RegExp
    Dim email As String
    Set myReg = New RegExp
    myReg.IgnoreCase = True
    myReg.Pattern = "^[\w-\.]+@\w+\.\w+$"
    'replace "myName@domain.ru" любым адресом
    email = "myName@domain.ru"
    MsgBox "Результат проверки: " & myReg.Test(email)
    Unload Me
    End Sub

    наверх


    Получение сведений из web-страницы

    Данная функция возвращает различные компоненты web-страницы. Включая "host", "port", "user", "pass", "path" и "query"

    Private Type typURL 'http://sit:sitter@proxy.spiderit.net:881/prox/proxycfg.php3?openpage
    Protocol As String 'какой протокол (http://, ftp:// или другой)
    ServerName As String 'имя сервера (proxy.spiderit.net)
    Filename As String 'имя страницы (proxycfg.php3)
    Dir As String 'директория (/prox/)
    Filepath As String 'путь файла (/prox/proxycfg.php3)
    Username As String 'имя пользователя (sit)
    Password As String 'пароль (sitter)
    Query As String 'строка запроса (openpage)
    ServerPort As Integer 'порт сервера (881)
    End Type
    Const strNOCONTENT As String = "NOCONTENT"
    Const intDEFAULTPORT As Integer = 80
    Private Function ParseURL(URL As String) As typURL
    Dim strTemp As String
    Dim strServerAuth As String
    Dim strServerNPort As String
    Dim strAuth As String
    strTemp = URL
    'Parse protocol
    If (InStr(1, strTemp, "://") > 0) Then
    'URL contains protocol
    ParseURL.Protocol = Left(strTemp, InStr(1, strTemp, "://") - 1)
    strTemp = Right(strTemp, Len(strTemp) - (Len(ParseURL.Protocol) + 3)) 'delete protocol + ://
    Else
    'URL do not contains the protocol
    ParseURL.Protocol = strNOCONTENT
    End If
    '- Parse authenticate information
    If (InStr(1, strTemp, "/") > 0) Then
    'extract servername and user and password if there are directory infos
    strServerAuth = Left(strTemp, InStr(1, strTemp, "/") - 1)
    strTemp = Right(strTemp, Len(strTemp) - (Len(strServerAuth) + 1))
    Else
    'extract servername and user and password if there are no directory infos
    strServerAuth = strTemp
    strTemp = "/"
    End If

    If (InStr(1, strServerAuth, "@") > 0) Then
    'there are user and password informations
    strAuth = Left(strServerAuth, InStr(1, strServerAuth, "@") - 1)
    strServerNPort = Right(strServerAuth, Len(strServerAuth) - (Len(strAuth) + 1))
    Else
    'there are no user and password informations
    strAuth = ""
    strServerNPort = strServerAuth
    End If

    If (InStr(1, strAuth, ":") > 0) And (Len(strAuth) > 0) Then
    'split username and password on ":" splitter
    ParseURL.Username = Left(strAuth, InStr(1, strAuth, ":") - 1)
    ParseURL.Password = Right(strAuth, Len(strAuth) - InStr(1, strAuth, ":"))
    ElseIf (InStr(1, strAuth, ":") <> 0) Then
    'only username was submitted
    ParseURL.Username = strAuth
    ParseURL.Password = strNOCONTENT
    Else
    'no authenticate information was submitted
    ParseURL.Username = strNOCONTENT
    ParseURL.Password = strNOCONTENT
    End If

    If (InStr(1, strServerNPort, ":") > 0) Then
    'Servername contains port
    ParseURL.ServerPort = Int(Right(strServerNPort, Len(strServerNPort) - InStr(1, strServerNPort, ":")))
    ParseURL.ServerName = Left(strServerNPort, InStr(1, strServerNPort, ":") - 1)
    Else
    ParseURL.ServerPort = intDEFAULTPORT
    ParseURL.ServerName = strServerNPort
    End If

    If (InStr(1, strTemp, "?") > 0) Then
    ParseURL.Query = Right(strTemp, Len(strTemp) - InStr(1, strTemp, "?"))
    strTemp = Left(strTemp, InStr(1, strTemp, "?") - 1)
    Else
    ParseURL.Query = strNOCONTENT
    End If

    For i = Len(strTemp) To 1 Step -1
    If (Mid(strTemp, i, 1) = "/") Then
    ParseURL.Filename = Right(strTemp, Len(strTemp) - i)
    ParseURL.Dir = Left(strTemp, i)
    If Not (Left(ParseURL.Dir, 1) = "/") Then
    ParseURL.Dir = "/" & ParseURL.Dir
    End If
    Exit For
    End If
    Next

    ParseURL.Filepath = "/" & strTemp
    If Not (Left(ParseURL.Filepath, 1) = "/") Then
    ParseURL.Filepath = "/" & ParseURL.Filepath
    End If

    End Function

    Private Sub Form_Load()
    'Const strURL As String = "http://sharig.webzone.ru/IndexMainTopic.htm"
    Const strURL As String = "http://sit:sitter@proxy.spiderit.net:881/prox/proxycfg.php3?openpage"
    msgtext = ParseURL(strURL).Protocol & vbCrLf
    msgtext = msgtext & ParseURL(strURL).Username & vbCrLf
    msgtext = msgtext & ParseURL(strURL).Password & vbCrLf
    msgtext = msgtext & ParseURL(strURL).ServerName & vbCrLf
    msgtext = msgtext & ParseURL(strURL).ServerPort & vbCrLf
    msgtext = msgtext & ParseURL(strURL).Filepath & vbCrLf
    msgtext = msgtext & ParseURL(strURL).Dir & vbCrLf
    msgtext = msgtext & ParseURL(strURL).Filename & vbCrLf
    msgtext = msgtext & ParseURL(strURL).Query & vbCrLf
    MsgBox msgtext, vbInformation
    End Sub

    наверх


    Мои программы

    BalloonMessage for MS Agent

       BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

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

    наверх


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

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

    Вопросы:


    Автор вопроса:
    darknez@mail.kz

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

       Может кто-нибудь знает, как спрятать значки на рабочем столе? (в смысле так, как это делает Windows при определённых настройках)


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

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

       Кто знает прямые команды на Видио проц для рисования и получения цвета точки.


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

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

       Как использовать Assembler В VB?


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

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

       Как мне сделать так, чтобы VB проверял системную дату и дату взятую из файла. Файл должен содержит несколько записей.


    Автор вопроса: Андрей Щёкин

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

       Скажите пожалуйста, где можно найти информацию по VB.Net (не общую, а рассылки, форумы или сайты по этой теме). В частности, как использовать RAS и WinInet.


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

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

       Скажите, пожалуйста, можно ли при движении мышью (без клика) по пунктам меню считывать их содержимое?


    Автор вопроса: Александр

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

       Подскажите пожалуйсто как передать параметры в отчет Cristal Reports Используя crpe32.dll (если есть у кого описание API функций этой DLL пришлите пож. буду рад любой информации)


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

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

       Можно ли работать в VB с БД MySql так же как с Access. Если да то что для этого надо?


    Автор вопроса: Umidjon B. Rahmonberdiev

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

       Как мне создавать/менять/удалять пользователей, групп и т.д. используя ВБ 6.0 на:
       
    а) В Вин2к/НТ компьютере, в рабочей группе (без домена)
    б) В Вин2л/НТ домене.

    Любые ссылки на е-доки, советы


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

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

       Кто нибудь янает как отправить(или получить) файл(zip,exe,htm и тд) испольяуя Winsock Control.




    Ответы:


    Вопрос:

       У меня вопрос к янатокам в области API-функций. Есть такая строка:
    call MCIExecute("play c:\fun\music\age 1.wav")
    Описание проблемы - судя по всему, функция не хочет принимать имя файла, в котором содержатся пробелы. Вопрос - можно ли эту функцию "научить" понимать пробелы в имени файла и если да, то каким методом?

    Ответ:

    Автор ответа: CaHeK

    Попробуй вместо пробела ставить % …должно помочь…


    Вопрос:

       У меня вопрос к янатокам в области API-функций. Есть такая строка:
    call MCIExecute("play c:\fun\music\age 1.wav")
    Описание проблемы - судя по всему, функция не хочет принимать имя файла, в котором содержатся пробелы. Вопрос - можно ли эту функцию "научить" понимать пробелы в имени файла и если да, то каким методом?

    Ответ:

    Автор ответа: Duke

    Вообще можно воспользоватся другой API командой например SNDPLAYSOUND

    Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
    'создай кнопку и напиши
    Private Sub Command1_Click()
    sndPlaySound "C:\1.wav", 3 'C:\1.wav - вмето этого путь к любому файлу WAV
    End Sub


    Вопрос:

       Здратвуйте в чём причина когда я перехожу в "коде" на русский то печатает непонятными символами раньше всё было нармально а сёйчас стало так может какие нибудь настройки сбились или что?

    Ответ:

    Автор ответа: Дмитрий

    Tools/Options/Editor Format/Font выбери с поддержкой кириллицы


    Вопрос:

       Здратвуйте в чём причина когда я перехожу в "коде" на русский то печатает непонятными символами раньше всё было нармально а сёйчас стало так может какие нибудь настройки сбились или что?

    Ответ:

    Автор ответа: OlegK

    Шрифт кириллический поставь


    Вопрос:

       У меня 2 вопроса по VB.
    1. Как правильно органияовать яапись в файл проиявольного доступа подобный тип переменной, и вояможно ли вообще ее испольяование в таком виде:

    Public Type WorkMach
        DataTek as Date
        TypeMach() as String
        KmNach() as Single
        KmKon() as Single
        ...
        Napravl as String
    End Type
    Public Narabotka() as WorkMach

    Если вояможно, то - как правильно?

    2. Как правильно объединять ячейки в элементе управления MSHFlexGrid, какие свойства ему небходимо яадать? И как ия него органияовать вывод на принтер?

    Ответ:

    Автор ответа: Дмитрий

    По поводу записи в файл, для random access нельзя использовать string, надо использовать строки фиксированной длины например

    Pivate str1 as string * 7

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


    Вопрос:

       Скажите пожалуйста, могу ли я через VB - узнать: дату и время создания файла COMMAND.COM, если да- то как?

    Ответ:

    Автор ответа: Igoryk

    Да, конечно. Следующий код сделает это:
    MsgBox FileDateTime("C:\command.com")


    Вопрос:

       Даны два двумерных массива. После ввода первого массива, должен отображаться другой, но с условием что строки и столбцы этого массива будут перевернуты, т.е. первый элемент массива один должен стать последним элементом второго массива. И так со всеми элементами.

    Ответ:

    Автор ответа: Dark

    Это не так уж и трудно делается, просто присваеваешь первый элемент первого массива последнему элементу второго массива и тд. Вот пример, как это сделать:

    Dim a(5, 5) As Integer, b(5, 5) As Integer ' задаём 2 двумерных массива
    For i = 1 To 5
    For j = 1 To 5
    n = n + 1
    a(i, j) = n ' присваиваем значения элементам массива
    Next j, i
    For i = 5 To 1 Step -1 ' начинаем перебирать 1 массив
    For j = 5 To 1 Step -1 'с самого последнего элемента
    b(6 - i, 6 - j) = a(i, j) ' а 2 массив наоборот с первого элемента
    Next j, i
    For i = 1 To 5
    For j = 1 To 5
    Print a(i, j); b(i, j) ' распечатываем массивы
    Next j, i


    Вопрос:

       Подскажите пожалуйста как в CommonDialog настроить фильтр на расширение tst.

    Ответ:

    Автор ответа: Dark

    У CommonDialog есть свойство Filter, с помощью него и ставится.
    Вот прмер:
    CommonDialog. Filter="Файл с расширением tst(*.tst)|*.tst|"


    Вопрос:

       Подскажите пожалуйсто как в проекте вместо стандартной бейсиковской иконки поставить свою.

    Ответ:

    Автор ответа: Dark

    У формы есть такое свойство под названием ICON


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

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

    наверх


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

    Сурменок Павел