VBNet
VBMania
Голосование:
Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.
Subscribe.Ru увеличило максимальный размер рассылки до 100 кб. В связи с этим вопрос:
Какого размера Вы хотели бы получать рассылку?
В какой день (дни) недели Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
С какой периодичностью Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Результаты голосования
Доска почёта:
Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:
Улицы VB
Использование VB
Азбука VB
VB на русском
Улицы VB
Кирпичики VB
CообЧа VB
Snoozex Design
|
Господа!!! читайте MSDN!!!
Несколько слов от автора:
Поздравляю всех с натупающим праздником!
Читайте!
Содержание выпуска
Книги
|
Visual Basic 6. Специальный справочник
Это издание поможет читателю освоить инструменты и средства Visual Basic. Здесь вы найдете описание элементов языка, библиотечных функций, SQL-операторов, элементов управления. Особое внимание уделено различным мастерам, предназначенным для решения стандартных задач. В каждой главе содержится информация по созданию приложения определенной направленности: пошаговое описание операций, синтаксис необходимых операторов и подробно разобранные примеры. Для облегчения поиска можно воспользоваться алфавитным указателем, размещенным в конце книги. Предлагаемый справочник будет полезен не только пользователям, активно работающим с Visual Basic 6, но и начинающим программистам, желающим перейти к профессиональной разработке приложений с наименьшими затратами времени.
Автор: Карпов Борис
Издательство: Питер
Год издания: 2000
Кол-во страниц: 416
Стоимость: 84 р.
Формат: 84x108/32
Переплёт: мягкий
|
|
Visual Basic 6.0 для приложений
В книге приведены справочные сведения по программированию на языке Visual Basic 6.0 для приложений (VBA 6.0) в рамках Microsoft Office 2000. Подробно описаны объекты, их свойства и методы, операторы, функции, типы данных. Отдельная глава посвящена проектированию меню, панелей и форм. Описание иллюстрировано примерами. Сведения структурированы по приложениям, входящим в состав Microsoft Office 2000: Word, Excel, PowerPoint, Access. Предметный указатель позволяет быстро найти необходимую информацию.
Автор: Гюнтер Штайнер
Издательство: Лаборатория Базовых Знаний
Год издания: 2000
Кол-во страниц: 832
Стоимость: 88 р.
Формат: 70x100/32
Переплёт: твёрдый
|
|
Visual Basic 6.0, Visual Basic for Applications 6.0
Книга является систематизированным справочником по всем элементам языка программирования Visual Basic (VВ), входящим, как в автономную версию VB, так и в основные реализации Visual Basic for Applications. Помимо тех официальных сведений, которые можно найти в документации и в справочной системе, книга содержит конкретные примеры, рекомендации и маленькие хитрости программиста, а также поправки к справочной системе, которая, увы, не без ошибок. Книга предназначена для всех специалистов, занимающихся разработкой приложений с применением Visual Basic for Applications.
Автор: Король В
Издательство: КУДИЦ - ОБРАЗ
Год издания: 2000
Кол-во страниц: 448
Стоимость: 129 р.
Формат: 70х100/16
Переплёт: мягкий
|
|
Visual Basic 6.0. Наиболее полное руководство для профессиональной работы в среде Visual Basic 6.0
Язык программирования Visual Basic - мощный инструмент разработки приложений для 32 - разрядных систем Windows 95 и Windows NT. В книге рассматриваются как фундаментальные понятия и темы: от установки продукта на компьютер пользователя и описания интегрированной среды разработки до изложения основ техники программирования на Visual Basic , так и сложные вопросы, адресованные профессиональным программистам: создание интерфейса пользователя, применение стандартных элементов управления, в том числе и для работы с базами данных, программирование компонентов ActiveX, описание технологии OLE drag - and - drop, объектная модель FSO, функции работы с файлами, отладка и оптимизация программ, локализация и распространение готовых приложений.
Автор: нет данных
Издательство: BHV - Санкт - Петербург
Год издания: 2000
Кол-во страниц: 992
Стоимость: 217 р.
Формат: 70х100/16
Переплёт: мягкий
|
|
Visual Basic 6.0. Практика использования
Книга представляет собой идеальное учебное пособие для тех, кто изучает Visual Basic 6.0. В ней подробно описываются интегрированная среда разработки, основные элементы управления Visual Basic 6.0 и приемы работы с ними, различные возможности ввода и вывода информации. Особое внимание уделяется инструментам разработки и отладки проектов, организации обмена данными между приложениями, классам, элементам управления ActiveX и средствам разработки приложений для локальных и распределенных баз данных. Книга рассчитана на широкий круг читателей, - как начинающих, так и подготовленных разработчиков приложений.
Автор: Титаренко Григорий
Издательство: BHV - Киев
Год издания: 2001
Кол-во страниц: 416
Стоимость: 96 р.
Формат: 60x90/16
Переплёт: твёрдый
|
Остальные книги о VB можно найти здесь.
наверх
Получить размер директории
Пример 1 основан на применении FileSystemObject. Для использования этого примера установите ссылку на Microsoft Scripting Runtime через меню Project | References.
'Пример 1
Dim FSys As New FileSystemObject
Private Sub Command1_Click()
'Не забудьте указать свою директорию для
проверки примера
Set qn = FSys.GetFolder("D:\2\attributes\")
MsgBox "Размер папки " & qn.Size / 1024 & "
килобайт"
End Sub
'Пример 2
Const MAX_PATH = 260
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
Private Declare Function FindFirstFile Lib "kernel32" Alias
"FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA)
As Long
Private Declare Function FindNextFile Lib "kernel32" Alias
"FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As
Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As
Long
Public Function SizeOf(ByVal DirPath As String) As Double
Dim hFind As Long
Dim fdata As WIN32_FIND_DATA
Dim dblSize As Double
Dim sName As String
Dim x As Long
On Error Resume Next
x = GetAttr(DirPath)
If Err Then SizeOf = 0: Exit Function
If (x And vbDirectory) = vbDirectory Then
dblSize = 0
Err.Clear
sName = Dir$(EndSlash(DirPath) & "*.*", vbSystem Or vbHidden Or vbDirectory)
If Err.Number = 0 Then
hFind = FindFirstFile(EndSlash(DirPath) & "*.*", fdata)
If hFind = 0 Then Exit Function
Do
If (fdata.dwFileAttributes And vbDirectory) = vbDirectory Then
sName = Left$(fdata.cFileName, InStr(fdata.cFileName, vbNullChar) - 1)
If sName <> "." And sName <> ".." Then
dblSize = dblSize + SizeOf(EndSlash(DirPath) & sName)
End If
Else
dblSize = dblSize + fdata.nFileSizeHigh * 65536 + fdata.nFileSizeLow
End If
DoEvents
Loop While FindNextFile(hFind, fdata) <> 0
hFind = FindClose(hFind)
End If
Else
On Error Resume Next
dblSize = FileLen(DirPath)
End If
SizeOf = dblSize
End Function
Private Function EndSlash(ByVal PathIn As String) As String
If Right$(PathIn, 1) = "\" Then
EndSlash = PathIn
Else
EndSlash = PathIn & "\"
End If
End Function
Private Sub Form_Load()
'Замените 'D:\Basic' той директорией, размер которой
хотите узнать
MsgBox SizeOf("D:\Basic") / 1000000
End Sub
наверх
Три пути создания папки
Разместите на форме элемент CommandButton
'1 ВАРИАНТ
Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Private Declare Function CreateDirectory Lib "kernel32" Alias
"CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As
SECURITY_ATTRIBUTES) As Long
Public Sub CreateNewDirectory(NewDirectory As String)
Dim sDirTest As String
Dim SecAttrib As SECURITY_ATTRIBUTES
Dim bSuccess As Boolean
Dim sPath As String
Dim iCounter As Integer
Dim sTempDir As String
iFlag = 0
sPath = NewDirectory
If Right(sPath, Len(sPath)) <> "\" Then
sPath = sPath & "\"
End If
iCounter = 1
Do Until InStr(iCounter, sPath, "\") = 0
iCounter = InStr(iCounter, sPath, "\")
sTempDir = Left(sPath, iCounter)
sDirTest = Dir(sTempDir)
iCounter = iCounter + 1
'create directory
SecAttrib.lpSecurityDescriptor = &O0
SecAttrib.bInheritHandle = False
SecAttrib.nLength = Len(SecAttrib)
bSuccess = CreateDirectory(sTempDir, SecAttrib)
Loop
End Sub
Private Sub Form_Load()
Call CreateNewDirectory("c:\123\456\789\")
End Sub
'2 ВАРИАНТ
Private Declare Function MakeSureDirectoryPathExists Lib "IMAGEHLP.DLL" (ByVal
DirPath As String) As Long
Sub CreateFolder(ByVal DestPath As String)
If Right(DestPath, 1) <> "\" Then DestPath = DestPath & "\"
If MakeSureDirectoryPathExists(DestPath) = 0 Then
MsgBox "Ошибка в создании папки: " & DestPath
End If
End Sub
Public Function FileName(FilePath As String)
Dim strArray() As String
strArray = Split(FilePath, "\")
FileName = strArray(UBound(strArray))
End Function
Private Sub Form_Load()
CreateFolder ("c:\123\456\789")
End Sub
'3 ВАРИАНТ
Private Sub Command1_Click()
On Error GoTo errorfolder:
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateFolder "c:\new_folder"
errorfolder:
If Err = 58 Then MsgBox "File already exists"
Exit Sub
End Sub
наверх
Как проверить, существует ли директория?
Иногда необходимо проверить, существует ли
папка. Данная функция возвращает True -
если папка существует, и False - если такой
папки на компьютере нет. В данную функцию
передается строковая переменная, содержащая
полный путь к директории(папке).
Public Function FolderExists(ByVal strPathName As String) As
Boolean
Dim DirectoryFound As String
Const errPathNotFound As Integer = 76
On Error GoTo 0
DirectoryFound = Dir(strPathName, vbDirectory)
If (Len(DirectoryFound) = 0 Or Err = errPathNotFound) Then
FolderExists = False
Else
FolderExists = True
End If
End Function
Private Sub Command1_Click()
'MsgBox FolderExists("D:\Basic")
If FolderExists("D:\Basic\Module1") = False Then
MsgBox "Такая папка не существует"
Else
MsgBox "Такая папка существует"
End If
End Sub
наверх
Функция удаления директории со всем содержимым
Private Sub Form_Load()
'замените путь 'D:\vbcode1\Category\_vti_cnf' на ваш
x = DelTree("D:\vbcode1\Category\_vti_cnf")
Select Case x
Case 0: MsgBox "Deleted"
Case -1: MsgBox "Invalid Directory"
Case Else: MsgBox "An Error was occured"
End Select
End Sub
Function DelTree(ByVal strDir As String) As Long
Dim x As Long
Dim intAttr As Integer
Dim strAllDirs As String
Dim strFile As String
DelTree = -1
On Error Resume Next
strDir = Trim$(strDir)
If Len(strDir) = 0 Then Exit Function
If Right$(strDir, 1) = "\" Then strDir = Left$(strDir, Len(strDir) - 1)
If InStr(strDir, "\") = 0 Then Exit Function
intAttr = GetAttr(strDir)
If (intAttr And vbDirectory) = 0 Then Exit Function
strFile = Dir$(strDir & "\*.*", vbSystem Or vbDirectory Or vbHidden)
Do While Len(strFile)
If strFile <> "." And strFile <> ".." Then
intAttr = GetAttr(strDir & "\" & strFile)
If (intAttr And vbDirectory) Then
strAllDirs = strAllDirs & strFile & Chr$(0)
Else
If intAttr <> vbNormal Then
SetAttr strDir & "\" & strFile, vbNormal
If Err Then DelTree = Err: Exit Function
End If
Kill strDir & "\" & strFile
If Err Then DelTree = Err: Exit Function
End If
End If
strFile = Dir$
Loop
Do While Len(strAllDirs)
x = InStr(strAllDirs, Chr$(0))
strFile = Left$(strAllDirs, x - 1)
strAllDirs = Mid$(strAllDirs, x + 1)
x = DelTree(strDir & "\" & strFile)
If x Then DelTree = x: Exit Function
Loop
RmDir strDir
If Err Then
DelTree = Err
Else
DelTree = 0
End If
End Function
наверх
Установить папку, открываемую "по умолчанию"
Копаясь как-то в библиотеке kernel32.dll,
наткнулся на API-функцию SetCurrentDirectory.
Некоторое время я думал, как можно использовать
эту функцию, и вот вам небольшой пример.
Наверняка, эту функцию можно использовать и еще
как-то, вот тут-то и открывается простор для вашей
деятельности.
Как всегда в моих примерах, не забудьте
расположить на форме элемент CommandButton.
Private Declare Function SetCurrentDirectory Lib
"kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String)
As Long
Private Sub Command1_Click()
SetCurrentDirectory ("d:\1")
Dim FN As Integer
FN = FreeFile
Dim FName As String
'Использование функции SetCurrentDirectory позволяет не
вводить полный путь файла.
'Без использования функции SetCurrentDirectory следующая
строчка выглядела бы как:
'Open "D:\1\1.txt" For Input As #FN
Open "1.txt" For Input As #FN
ddd = Input(LOF(FN), #FN)
Close #FN
MsgBox ddd
'Module1.ShowOpen
End Sub
наверх
Мои программы
BalloonMessage for MS Agent
BalloonMessage for Microsoft Agent реализует диалог программы с
пользователем, используя при этом технологию Microsoft Agent. OCX реализует три
типа диалоговых окон: InputBox, MsgBox и MsgLabels.
Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
наверх
Вопрос/Ответ
Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.
Вопросы:
Автор вопроса: Rafis
Ответ ожидается по этому адресу
Подскажите мне, пожалуйста, как определить попал ли элемент упр. в границы другого эл.упр. Допустим shape задел другой shape, причём оба shape-а движутся.Лучше без определения Left и top.
Автор вопроса: Павел
Ответ ожидается по этому адресу
Не могу разобраться с сетью!!
Как получить список машин в сети?
И как пересылать данные через WinSoket если он все время обьединяет переменные при частой передаче пакетов или что можно использовать вместо него? Я видел не мало программ для управления сетевой машиной которые не требовали установки Client-а на удаленной машине, может кто нибудь подскажит в чем прикол или лудьше скинет исходничек?
!! Если можно подскажите хорошую литературу и где ее можно найти?
Автор вопроса: Вадим Александрович Ярошенко
Ответ ожидается по этому адресу
Подскажите, как работать с БД Betrive.
Ответы:
Вопрос:
как расположить несколько чисел в порядке воярастания?
Ответ:
Автор ответа: Кривокрисенко Артём
Можно сделать это следующим образом (данный код необходимо разместить в любом модуле)
Option Explicit
' Этот тип данных можно было не создавать,
' но я не нашёл другого способа делать ссылки на
' массив
' В этом случае можно ссылаться на массив по
' индексу переменной SArr
Private Type SortArray
A() As Double
End Type
Dim SArr(1 To 2) As SortArray
Public Sub Sort(SortArr() As Double, ReadyArr() As Double)
' Данные берутся из массива SortArr и помещаются
' в массив ReadyArr
ReDim SArr(1).A(UBound(SortArr)) 'Главный массив
ReDim SArr(2).A(UBound(SortArr)) 'Временный массив
Dim int1 As Integer
Dim int2 As Integer
For int1 = 1 To 2
For int2 = 0 To UBound(SortArr)
SArr(int1).A(int2) = SortArr(int2)
Next int2
Next int1
' Сначала временный и главный массивы содержат
' одинаковые данные
JoinSort 0, UBound(SortArr), 1, 2 'Сортируем
For int2 = 0 To UBound(SArr(1).A)
ReadyArr(int2) = SArr(1).A(int2)
Next int2
End Sub
Private Sub JoinSort(p As Integer, r As Integer, _
arr1 As Integer, arr2 As Integer)
Dim Q As Integer
' p-начало сортируемого массива
' r-его конец
' arr1 и arr2 - это ссылки на главный
' и временный массивы
' Q-середина массива
' Если массив состоит из одного элемента
' или он пустой, выходим
If p >= r Then Exit Sub
' Находим середину массива
Q = Int((p + r) / 2)
' Сортируем левую часть
JoinSort p, Q, arr2, arr1
' Сортируем правую часть
JoinSort Q + 1, r, arr2, arr1
' Объединяем обе части
SortCon p, Q, r, arr2, arr1
End Sub
Private Sub SortCon(p As Integer, Q As Integer, r As Integer, _
arr As Integer, Result As Integer)
'p-начало сортируемого массива
'Q-середина сортируемого массива
'r-конец сортируемого массива
'arr-ссылка на массив с данными
'Result-ссылка на массив, куда будут помещены данные
Dim i As Integer, j As Integer, k As Integer
i = p 'индекс, следящий за левой частью
j = Q + 1 'индекс, следящий за правой частью
k = p 'индекс, следящий за позицией в массиве-приёмнике
' Пока одна из частей не закончилась
While i <= Q And j <= r
' Если значение в левой части меньше
If SArr(arr).A(i) < SArr(arr).A(j) Then
' помещаем его в массив-приёмник
' и увеличиваем левый индекс на 1
SArr(Result).A(k) = SArr(arr).A(i)
i = i + 1
' иначе помещаем в массив-приёмник правое значение
' и увеличиваем правый индекс на 1
Else
SArr(Result).A(k) = SArr(arr).A(j)
j = j + 1
End If
' увеличиваем на 1 индекс массива-приёмника
k = k + 1
Wend
' Здесь одна из частей закончилась.
' Просто переписываем значения из оставшейся части
' в массив-приёмеик
' Если остались данные в левом массиве
While i <= Q
' переписываем их, увеличивая каждый раз левый индекс
' и индекс массива-приёмника
SArr(Result).A(k) = SArr(arr).A(i)
i = i + 1
k = k + 1
Wend
' иначе проделываем тоже самое с провой частью
While j <= r
SArr(Result).A(k) = SArr(arr).A(j)
j = j + 1
k = k + 1
Wend
End Sub
Можете заполнить эту форму, либо отослать вопрос СЮДА
Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
наверх
Выпуск подготовили:
|
Сурменок Павел
|
|