Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Visual Basic для новичков и профессионалов 36


Информационный Канал Subscribe.Ru

Visual Basic для новичков и профессионалов
Visual Basic для новичков и профессионалов #36

 

Сегодня в выпуске:
>
Новости сайта
>
Новое на форуме
>
Вопросы и ответы
>
Курс обучения для начинающих
>
Компоненты, контролы, исходники
>
Статья выпуска
>
Наши партнеры
Бред автора

Здравствуйте уважаемые подписчики!

Вот и дошли руки сделать очередной выпуск, который запоздал на большой промежуток времени. Спросите, почему? Диплом всему ответ! Можете поздравить меня с успешной защитой дипломного проекта на Отлично! Поздравления прошу писать сюда.

Ну а что у нас с сайтом? С сайтом продолжается работа. Точные сроки сказать не смогу, так как еще много работы предстоит сделать.

Опять же изменен дизайн рассылки! Это конечный вариант дизайна рассылки.

Наша рассылка уходит ненадолго в отпуск. Все связано с "ремонтом" сайта. На это уходит много времени. Но вы также можете присылать свои ответы и вопросы, ни одно письмо не останется без внимания.

За все время невыхода рассылки поступило некоторое количество вопросов. Ну-с, начнем!

ВВЕДЕНО НОВОЕ ПРАВИЛО (4). ЧИТАЙТЕ НИЖЕ.

Правила рассылки
1. Вопросы, касающиеся другой сферы программирования, а также сферы ПО - НЕ ПРИНИМАЮТСЯ!
2. Письма с указанием ссылок на какой-либо ресурс или сайт будут отвергнуты, либо ссылкы будут заменены на <РЕКЛАМА> и не будут опубликованы в рассылке!
3. Используйте текстовый формат письма при написании вопроса или ответа.
4. ПИСЬМА С СОДЕРЖАНИЕМ ТИПА "ПИШИ СЮДА, Я ТЕБЕ ВЫШЛЮ ИСХОДНИК", ЛИБО "НАПИШИ МНЕ, Я ТЕБЕ ОБЪЯСНЮ" БОЛЬШЕ НЕ ПУБЛИКУЮТСЯ! ЕСЛИ ВЫ ХОТИТЕ ПОДЕЛИТЬСЯ ФАЙЛОМ, ПРИСЫЛАЙТЕ ЕГО АВТОРУ РАССЫЛКИ. ЭТО ВАМ НЕ ФОРУМ И НЕ СЛУЖБА СООБЩЕНИЙ МЕЖДУ ПОДПИСЧИКАМИ!
Новости сайта www.basic.webhost.ru

Нет новостей. Продолжается работа над сайтом.

Вопросы и ответы

Место
Имя
Баллы
1
*Casper* (=)
86
2
HouseBugs (=)
28
3
Андрей Е. (+)
26
4
Андрей (now@...) (-)
24
5
Bullet [PCLO] (New!)
20

Всего участников: 51
Общее количество баллов всех участников: 422
Из них не заработали ни одного балла 4 участника

Новые вопросы

78/ Предлагаю следующую проблему к обсуждению:как встроить диалоговое окно в метод класса в ActiveXDLL и получить с его помощью данные? Вот пример:
Public Function GetUserChoice$() ‘метод класса
MyForm.Show vbModal ‘диалоговое окно для получения данных от пользователя
‘Здесь возможна обработка данных
‘…
‘… GetUserChoice = куда сохраняли ввод
‘ см.обработчик OnClick ниже End Function Обработчик события OnClick для кнопки на диалоговой форме MyForm содержит такой код:
Private Sub Command1_Click() сюда сохраняем ввод = Text1.Text Unload Me End Sub Проблема,собственно, состоит в том,как сохранить введенные данные и вернуть их в метод.Все перепробовал (глобальные переменные,свойства вспомогательного класса итд.) –ничего не работает,форма как будто существует сама по себе,в глухой изоляции и в упор не видит ни переменных,ни классов в других модулях.Складывается такое впечатление,что в ActiveXDll в VB вообще нет поддержки визуальности. К слову, с этой проблемой я обращался за помощью к нескольким «профессиональным» программистам (или тем,которые заявляли себя таковыми) на VB,но ни один из них не ответил.Видимо,ответить было нечего ;).
[Ответить]
79/ Всем привет!!! У меня три вопроса: 1)Для воспроизведения MP3 – файлов в своей программе я использовал следующую функцию Private Declare Function mciExecute Lib "winmm.dll" _ (ByVal lpstrCommand As String) As Long Private Sub Form_Load() lpstrCommand = "Play " & "C:\Windows\Media\Chimes.wav" Call mciExecute(lpstrCommand) End Sub При закрытии программы файл продолжает воспроизводиться. Как сделать что - то наподобие кнопки Стоп, чтобы можно было остановить воспроизведение до закрытия программы. 2)Почему вышеуказанная функция не понимает пробелов в указании пути к файлу. Как можно это исправить? 3)И последнее. Как задержать выполнение программы на несколько секунд. Например, перед закрытием проигрывается звуковой файл, а затем происходит выгрузка. [Ответить]
80/ Как прописать на кнопку запуск Microsoft Query? [Ответить]
81/ Здравствуйте Друзья, не работает CommonDialog пишет license information for this component not foundю You do not have an appropriate license to use this functionainality in the design environment. Как исправить помогите [Ответить]
82/ Как сделать чтобы при нажатии на объекте звучал звук (wav)? [Ответить]
83/ Помогите пожалуйста. Нужно написать на VB прогу которая отправляла бы на интернет страницу (php) данные. Тоесть программа отправки SMS должна передавать само сообщение, номер и оператор на определенную страницу. Заранее благодарен. [Ответить]
84/ 1) Как сделать ярлык на рабочем столе. 2) Как зарегистрировать расширение (т.е. при открытие файла с твоим выдуманным расширением, открывалась твоя программа и т.д. и т.п.) Спасибо! [Ответить]
85/ имеется элемент WebBrowser1, как сделать чтобы в нем открывалася web страница находящаяся в одной папке с программой? [Ответить]
Вопросы, ответы на которые не были получены

28/ Как вывести все иконки ассоциативных файлов (как в проводнике) [Ответить]
40/ Здраствуйте ! У меня к вам будет один вопрос. Можно ли на ВБ (у меня установлена 6-я версия программы) сделать поиск подключенных компьютеров по локальной сети.Мне нужно узнать их ай-пи адрес и желательно имя компьютера. Я начинающий программист, если можно, обьясните более подробно. Заранее спасибо [Ответить]
49/ Тут такая проблема... Я собрался изучить базы данных, а вот хелп не могу найти, в частности по MSH FlexGrid, если у вас есть хелп по контролам вы бы не смогли бы мне прислать или подсказать как с ним работать. Зарание благодарю!!!! [Ответить]
54/ Как сделать турнирную таблицу (Как в футболе). Самое главное - это сортировка. Заранее спасибо! [Ответить]
57/ Здравствуйте. Уважаемы програмисты, я не программирую на VB. Недавно появилась задачка, которую я предполагаю как можно решить, но не знаю как реализовать. Исходные данные. Есть сетевой принтер с возможностью двухсторонней печати. Пользователи работают с MS Word. На печать посылаются задания из n листов. При этом, листы с 1 по n-2 должны быть напечатаны с одной стороны. Лист n-1 является последним листом документа, а лист n оборотной стороной листа n-1. Предпологаемое решение. По нажатию кнопки "Печать1" из переменной "Количество листов в документе" извлекается заначение n и если n<2 выводится на экран сообщение "Печать с оборотом не возможна" и производится выход из программы, если n>2 вызывается на исполнение функция печати, которой в параметрах передается: 1. Печатать листы с 1 по n-2; 2. Печатать без оборота. Вызывается на исполнение функция печати, которой в параметрах передается: 1. Печатать листы n-1, n; 2. Печатать с оборотом. При этом желательно сделать так, чтобы между вызовами функций печати в очередь печати не проскочило какое-нибудь задание. Естественно, все это оформить в виде макроса. Прошу Вас помочь мне. [Ответить]
62/ Здравствуйте уважаемуе программисты. Подскажите принцип работы с объектом phone. Вопрос жизни и смерти. [Ответить]
63/ Здравствуйте! Как сделать столбец для таблицы с помощью VB который будет показывать номера кварталов с min зарплатой(в таблице 4 квартала). Другой столбец - Динамика изменения средней зарплаты по кварталам (рост, падение, колебание, постоянно)\ нужно найти среднее знаение среди записей каждого отдела и чтобы написал динамику изменени, то что напискано в скобках, одно слово. [Ответить]
67/ Здравствуйте! У меня к Вам два вопроса по VBA. 1. Мне часто приходится выполнять расчеты в Excel по формулам. Каким образом можно организовать вычисление в цикле так, чтобы после каждого следующего обращения формулы к ячейке X ее содержимое изменялось бы с определенным шагом? 2. При поиске в таблице базы данных какого-либо значения я пользуюсь формулами "ВПР" или "ГПР". Как можно сделать, чтобы при нахождении приближенного значения функция возвращала наименьшее из наибольших значений в строке или столбце списка, а не наибольшее из наименьших, как заложено в формулах? Заранее благодарю. Александр. [Ответить]
68/ Как поменять рисунок рабочего стола? SystemParametersInfo работает только с bmp файлами, а как применить jpg или gif? [Ответить]
70/ Здраствуйте, подскажите пожалуйсто как наложить на большую картинку меньшую по определенным координатам, при этом результат сохранить в графический файл (bmp). [Ответить]
71/ Например есть соединение с интернетом и локальной сетью - как можно средствами VB6 узнать кол-во принятых и отправленых байт? Меня интересует конкректный пример, но можно хоть что-нибудь - если это вообще возможно. Заранее благодарю. [Ответить]
74/ Как сделать хороший менеджер закачек с использованием DirectPlay? Желательно исходник [Ответить]
76/ podskazhite pozhalusta, kak pravil'nee pristupit' k sozdaniu tablic i kakogo roda tablica nujna dlya vvoda, obrabotki i rascheta dannix, na VB.net. mne bazu sozdavat' ne nado. Zaranee spasibo [Ответить]
Полученные ответы


41/ А возможноли сделать на VB трех мерный кубик-рубик. Похожий на этот "http://conus-video.zp.ua/img/rubik.zip". Или хотя бы подскажите, где можно взять исходник к такой игре. [Ответить]

Отвечает: Виктор
Кубик Рубика на экране

Не знаю, может поможет.
Программу взял с сайта arbuz.uz. E-mail автора: admin @ arbuz.uz
Программа на Turbo Pascal'e. Грани кубика на экране можно вращать, используя «правую» часть клавиатуры мнемонически: 8 – верхняя грань, 2 – нижняя, 4 – левая, 6 – правя, 1 – задняя, . – передняя - по часовой стрелке, они же вместе с "Shift" - против. Используя F1 – F6 можно посмотреть кубик с разных сторон. Если вы… в общем, нажав «0» кубик вернётся в исходное «собранное» состояние, это самое большое преимущество перед настоящим кубиком (ещё вопрос, какой более настоящий?), опять же не уроните. Поворот сопровождается настоящим скрипом. При движении нет раздражающего мигания потому, что кубик не перерисовывается, а заново «заливается» цветом – это ещё и быстрее чем перерисовывание. Выход, конечно, «Esc». Можно копировать текст через клипборд – сразу заработает! Если конечно у вас подключен графический модуль и вообще стоит Turbo Pascal…



Оценка за ответ: 4
43/ Здравствуйте уважаемые програмисты. Смотрю я на это дело, сайт развивается, рассылка стала хорошей. То есть объемной. Я конечно не надеялся получать тут ответы, но смотрю, что после прекращения рассылки Visual Basic: "новости сайтов, советы, примеры кодов". Вижу что часть писателей теперб здесь. У меня к вам такой вопрос. Видел программу типа Чатер Бокс. Смысл простой я звоню со своего компа на другой имеющий эту же прогу. Она соединяется. Вся суть в том что можно переслать файлы или написать текст. Если кто знает как это сделать на VB. Как открыть порт и набрать номер я знаю. А дальше? [Ответить]

Отвечает: Bullet
Ну если порт ты открыл и номер набрал то дело осталось за малым.
Если ты используешь компонент MSComm для набора номера то после
установления связи с другим модемом сделай так:
MSComm1.Output = "Привет, проверка связи!" & vbCr
Данное сообщение отправится на другой конец.
Для того чтобы получить сообщение сделай так:
sRec = MSComm1.Input
MsgBox sRec
и увидишь что отосланное тебе сообщение отобразилось на экран.
Естественно перед этим нужно чтобы ты соединился с другим модемом.

Процедура обработки событий:

Private Static Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
' Получение данных
Case comEvSend
' Отправка данных
Case Else
' Неизвестное событие
End Select
End Sub

А для того чтобы отправить файл можно использовать два варианта:
1. Написать собственный протокол обмена данными.
2. Использовать готовые алгоритмы.

Я бы посоветовал использовать алгоритм ZModem, он может докачивать
файл при разрыве соединения. Для отправки текстовых файлов используй
метод указанный выше (MSComm1.Output) этого вполне будет достаточно.

А еще лучше загляни в MSDN. Хотя бы в версию 98 года. Там в папке с
примерами есть папка MScomm и в ней проект VBTerm.vbp. В этом проекте
реализован терминал для связи между двумя модемами. Очень детальный и
наглядный.

Оценка за ответ: 5
59/Доброго здоровья всем читателям рассылки! У меня есть один вопрос. Имеются два BMP рисунка разного размера, необходимо наложить на рисунок большего размера рисунок меньшего размера строго по заданным координатам, сохранить полученный рисунок. Буду благодарен за любые мысли. [Ответить]

Отвечает: Известный Незнокомец
Посмотри исходник, возможно тебе поможет.

Оценка за ответ: 5
60/ Здравствуйте уважаемые программисты! Может кто-нибудь знает,как работать с модемом в VB. Хотя бы номер набирать. Киньте исходничок на мыло, кому не лень. Спасёте меня по-крупному! [Ответить]

Отвечает: Bullet [PCLO]
Для начала необходимо подключить к проэкту и поместить на форму
компонент MSComm. Этот компонент используется для работы с модемом.
Далее на форме нужно создать текстовое окошко с именем txtNum и две кнопки
cmdDial и cmdCancel. Саму форму для порядка можно назвать frmMain.

Далее текст программы, который нужно вставить в проект.


' Для того что бы эта программа работала, Ваш телефон и
' модем должны быть подсоединены к телефонной линии
' --------------------------------------------------------
Option Explicit
DefInt A-Z

' Переменная для определения была ли нажата кнопка Отмена
Dim bCancelFlag

Private Sub cmdCancel_Click()
' Если пользователь передумал звонить и нажал Отмену
bCancelFlag = True
End Sub

Private Sub cmdDial_Click()
' Установим настройки соединения
' Так как на COM1 обычно висит мышка то запишем в CommPort значение равное 2
MSComm1.CommPort = 2
MSComm1.Settings = "9600,N,8,1"

' Откроем порт
On Error Resume Next
MSComm1.PortOpen = True
If Err Then
MsgBox "COM2: не доступен. Укажите в свойстве CommPort другое значение."
Exit Sub
End If

' Обнулим входной буфер
MSComm1.InBufferCount = 0

' Собственно сама команда набора номера
' Для набора номера любой модем использует команду AT и в зависимости
' от типа набора номера префикс.
' Т.е. для импульсного набора используй команду ATDP, а для тонового - ATDT
MSComm1.Output = "ATDP" + txtNum.Text + ";" + vbCr

' Теперь необходимо удостовериться что команда сработала.
' Для этого подождем пока модем вернет "OK"
Do
dummy = DoEvents()
' Если в буфере появились данные, то прочитаем их
If MSComm1.InBufferCount Then
FromModem$ = FromModem$ + MSComm1.Input
' Проверим нету ли там строки "OK"
If InStr(FromModem$, "OK") Then
' Выведем на экран сообщение о том, что на том конце провода подняли трубку
Beep
MsgBox "Дозвон осуществлен. Поднимите трубку телефона и говорите, либо отмените звонок нажав Отмена"
Exit Do
End If
End If

' Пользователь нажал Отмена
If bCancelFlag Then
bCancelFlag = False
Exit Do
End If
Loop

' Сбросим модемное соединение
MSComm1.Output = "ATH" + vbCr
' Закроем порт
MSComm1.PortOpen = False
End Sub

Private Sub Form_Load()
' Читать входящюю команду целиком
MSComm1.InputLen = 0
End Sub

Ну вот собственно и все. Для более детальной информации о компоненте
MSComm поройся в MSDN. Ну а что касается команд модема - то посмотри в
руководстве пользователя. Если такового нету или там не описаны
команды, которые поддерживает твой модем, то поищи эту информацию
через какой-нибудь поисковый сервер. Удачи.


Оценка за ответ: 5

Отвечает: TIM
Private Sub Command1_Click()
Open "COM1" For Output As #1 'or COM2
Print #1, "ATDT" & Text1.Text & Chr$(13)
Close #1
End Sub


Оценка за ответ: 3
73/Как узнать свой Ip адрес? [Ответить]

Отвечает: Bullet [PCLO]
Подключи к проекту и помести на форму компонент MS WinSock

Далее так:

Private Sub Form_Load()
' Выводим на экран свой ай-пи
MsgBox Winsock1.LocalIP
End Sub

Оценка за ответ: 5

Отвечает: Станислав Сергеевич Егунов
Скачать утилиту myIP http://www.basic-software.de/eng_dc_myip_win.html ,работает отлично!
Проверте на вирусы и шпионы , на всякий случай !
Станислав Сергеевич Егунов.

Оценка за ответ: 3

Отвечает: OverKill
'1 ВАРИАНТ
'Расположите на форме компонент Winsock(Winsock1) через меню Project|Components - Microsoft Winsock Control 6.0

Private Sub Form_Load()
MsgBox Winsock1.LocalIP
End Sub


--------------------------------------------------------------------------------
'2 ВАРИАНТ

'Вставьте следующий код в событие формы
Private Sub Form_Load()
MsgBox "IP Host Name: " & GetIPHostName()
MsgBox "IP Address: " & GetIPAddress()
End Sub

'Добавьте модуль в проект. Вставьте следующий код в модуль
Public Const MAX_WSADescription = 256
Public Const MAX_WSASYSStatus = 128
Public Const ERROR_SUCCESS As Long = 0
Public Const WS_VERSION_REQD As Long = &H101
Public Const WS_VERSION_MAJOR As Long = WS_VERSION_REQD \ &H100 And &HFF&
Public Const WS_VERSION_MINOR As Long = WS_VERSION_REQD And &HFF&
Public Const MIN_SOCKETS_REQD As Long = 1
Public Const SOCKET_ERROR As Long = -1
Public Type HOSTENT
hName As Long
hAliases As Long
hAddrType As Integer
hLen As Integer
hAddrList As Long
End Type
Public Type WSADATA
wVersion As Integer
wHighVersion As Integer
szDescription(0 To MAX_WSADescription) As Byte
szSystemStatus(0 To MAX_WSASYSStatus) As Byte
wMaxSockets As Integer
wMaxUDPDG As Integer
dwVendorInfo As Long
End Type
Public Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long
Public Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired As Long, lpWSADATA As WSADATA) As Long
Public Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
Public Declare Function gethostname Lib "WSOCK32.DLL" (ByVal szHost As String, ByVal dwHostLen As Long) As Long
Public Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal szHost As String) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
Public Function GetIPAddress() As String
Dim sHostName As String * 256
Dim lpHost As Long
Dim HOST As HOSTENT
Dim dwIPAddr As Long
Dim tmpIPAddr() As Byte
Dim i As Integer
Dim sIPAddr As String
If Not SocketsInitialize() Then
GetIPAddress = ""
Exit Function
End If
If gethostname(sHostName, 256) = SOCKET_ERROR Then
GetIPAddress = ""
MsgBox "Windows Sockets error " & Str$(WSAGetLastError()) & " has occurred. Unable to successfully get Host Name."
SocketsCleanup
Exit Function
End If
sHostName = Trim$(sHostName)
lpHost = gethostbyname(sHostName)
If lpHost = 0 Then
GetIPAddress = ""
MsgBox "Windows Sockets are not responding. " & "Unable to successfully get Host Name."
SocketsCleanup
Exit Function
End If
CopyMemory HOST, lpHost, Len(HOST)
CopyMemory dwIPAddr, HOST.hAddrList, 4
ReDim tmpIPAddr(1 To HOST.hLen)
CopyMemory tmpIPAddr(1), dwIPAddr, HOST.hLen
For i = 1 To HOST.hLen
sIPAddr = sIPAddr & tmpIPAddr(i) & "."
Next
GetIPAddress = Mid$(sIPAddr, 1, Len(sIPAddr) - 1)
SocketsCleanup
End Function
Public Function GetIPHostName() As String
Dim sHostName As String * 256
If Not SocketsInitialize() Then
GetIPHostName = ""
Exit Function
End If
If gethostname(sHostName, 256) = SOCKET_ERROR Then
GetIPHostName = ""
MsgBox "Windows Sockets error " & Str$(WSAGetLastError()) & " has occurred. Unable to successfully get Host Name."
SocketsCleanup
Exit Function
End If
GetIPHostName = Left$(sHostName, InStr(sHostName, Chr(0)) - 1)
SocketsCleanup
End Function
Public Function HiByte(ByVal wParam As Integer)
HiByte = wParam \ &H100 And &HFF&
End Function
Public Function LoByte(ByVal wParam As Integer)
LoByte = wParam And &HFF&
End Function
Public Sub SocketsCleanup()
If WSACleanup() <> ERROR_SUCCESS Then
MsgBox "Socket error occurred in Cleanup."
End If
End Sub
Public Function SocketsInitialize() As Boolean
Dim WSAD As WSADATA
Dim sLoByte As String
Dim sHiByte As String
If WSAStartup(WS_VERSION_REQD, WSAD) <> ERROR_SUCCESS Then
MsgBox "The 32-bit Windows Socket is not responding."
SocketsInitialize = False
Exit Function
End If
If WSAD.wMaxSockets < MIN_SOCKETS_REQD Then
MsgBox "This application requires a minimum of " & CStr(MIN_SOCKETS_REQD) & " supported sockets."
SocketsInitialize = False
Exit Function
End If
If LoByte(WSAD.wVersion) < WS_VERSION_MAJOR Or (LoByte(WSAD.wVersion) = WS_VERSION_MAJOR And HiByte(WSAD.wVersion) < WS_VERSION_MINOR) Then
sHiByte = CStr(HiByte(WSAD.wVersion))
sLoByte = CStr(LoByte(WSAD.wVersion))
MsgBox "Sockets version " & sLoByte & "." & sHiByte & " is not supported by 32-bit Windows Sockets."
SocketsInitialize = False
Exit Function
End If
SocketsInitialize = True
End Function

Оценка за ответ: 5

Отвечает: TIM
Подключаешь компонент MS Winsock Control 6.0 и пишешь вот так:
Private Sub Command1_Click()
MsgBox "Local Host Name: " & Winsock1.LocalHostName & vbCrLf & "Local IP: " & Winsock1.LocalIP
End Sub

Оценка за ответ: 4

Отвечает: matreshka
Этот контрол нужен в основном для связи с удаленным компом, но можно с ним делать и другие штуки. Например, сейчас мы узнаем свой IP адрес. Создай новый проект, нажми на Project/Components/MicrosoftWinsock Control 6.0, и кинь на форму появившийся на панели инструментов Winsock1, и кнопку. Код:
Private Sub Command1_Click()
MsgBox Winsock1.LocalIP
End Sub

Оценка за ответ: 4
75/Здравствуйте! Помогите начинающему в программировании VB! Использую VB встроенный в EXEL. Для постижения сей науки читаю спец литературу, но инфа там очень скудная, или в некотором роде для меня ещё не понятная. Написал макрос:
Sub SaveAS()
frm5.Show
ChDir "C:\My" FName = Application.GetSaveAsFilename
If FName = False Then Else ActiveWorkbook.SaveAS
FileName:=FName, FileFormat:= _ xlNormal, Password:
="", WriteResPassword:="", ReadOnlyRecommended:
=False _ , CreateBackup:=False
End If
End Sub
Нужно: При нажатии созданной Нн-ой кнопки : Проверить создана ли директория, если не создана , вывести форму (создать?, нет?), Если "нет" прекратить выполнение макроса, если "да" создать директорию ( MkDir "C:\My") и продолжить написанное. Заранее благодарен.
[Ответить]

Отвечает: Bullet [PCLO]
sDirName = "C:\My"

If Dir(sDirName) = vbNullString Then
nResult = MsgBox("Директория " & Chr(34) & sDirName & Chr(34) & " не существует. Создать её?", vbYesNo + vbQuestion, "Папка не найдена ...")
If nResult = vbNo Then Exit Sub
' Тут пишешь код для создания директории и всего что тебе там надо было
MkDir "C:\My"
'...
'...
End If

Оценка за ответ: 5

Отвечает: AGavrilov
Если я правильно понял, то можно это сделать например так:

Option Explicit
Sub SaveAS()
'references - Microsoft Scripting Runtime (необходима ссылка на эту библиотеку)
Dim fso As New FileSystemObject
Dim fld As Folder 'каталог
Dim sfldName As String 'название каталога
Dim intAnswer As Integer 'ответ пользователя

sfldName = "C:\My"
'проверяем наличие каталога
'если его нет, то выдаем сообщение пользователю
' метод FolderExists возвращает True если каталог существует, и False в противном случае
If Not fso.FolderExists(sfldName) Then
'Chr(34) - ASCII код двойных кавычек
'Chr(13) -ASCII код перехода на новую строку
intAnswer = MsgBox("Каталога " & Chr(34) & sfldName & Chr(34) & " не существует." & Chr(13) _
& "Создать его?", vbQuestion + vbYesNo, "Ошибка ")
'выбираем ответ пользователя
Select Case intAnswer
Case Is = vbYes
'если "Да", то создаем каталог
Set fld = fso.CreateFolder(sfldName)
'или используем MkDir (sfldName)
Case Is = vbNo
'если "Нет", то выходим из процедуры
Exit Sub
End Select
Else
End If
'а здесь дальше продолжаешь написанное
'ChDir "C:\My"
'и т.д.
End Sub

Оценка за ответ: 5
77/Как в текстовом поле вывести знак " (кавычки) [Ответить]

Отвечает: Андрей Еремин
Если не ошибаюсь, написать знак кавычек два раза.

Оценка за ответ: 5

Отвечает: Кудрявцев Александр
Text1.text = "В конце будут кавычки -> " & chr(34)

Оценка за ответ: 5

Отвечает: AGavrilov
Надо использовать Chr(34) - ASCII код двойных кавычек
Например:

Dim strText As String

strText = " Пример для отображения кавычек " & Chr(34)
Text1.Text = strText

Оценка за ответ: 5

Отвечает: fly
Там где нужно вывести кавычку поставь две. Например при выводе "Пример""это" покажет Пример"это.

Оценка за ответ: 5

Отвечает: Вячеслав
Привет,
Ставь три кавычки - у меня всё работает вот пример
Private Sub Form_Load()
Text1.Text = """"
End Sub

Оценка за ответ: 5
Обучение для новичков

На данный момент раздел приостановлен в связи с переездом на другой домен. Приносим свои извинения.
Задать вопрос>>>

Компоненты, контролы, исходники

M означает, что данный архив содержит только модуль.

Примеры и модули
Ссылка
Описание
Ссылка
Описание
about.zip Стандартное окно About в VB (4.2KB) OpenCD.zip Управление CD (M) (1KB)
anigif.zip Анимация в VB (5KB) progressbar.zip Progress Bar в трее (4KB)
appprioritet.zip Устанавливаем приоритет в приложении (1.8KB) randomform.zip Разные формы (M) (2KB)
biosinfo.zip Просматривает ифрормацию о БИОСе (5.5KB) RandomForms.zip Разные формы (1KB)
cd-rom.zip Работа с CD-ROM (1.6KB) Reestr.zip Работа с реестром (2.5KB)
commondialog.zip Диалог открытия файла без контрола (1.9KB) registry.zip Регистрация в реестре (9.5KB)
coolvbmenu.zip Клевое меню в VB (14KB) resource.zip Просмоторщик ресурсов проги (46.6KB)
disableendtasks.zip Запрет нажатия Ctrl+Alt+Del (1.8KB) RU_EN.zip Переключение языка программно (M) (1KB)
File_size.zip Определяет размер файла (M) (1KB) sharp.zip Пример часиков (2.1KB)
fso.zip Работа с FSO (File System Object) (101KB) ShutDown.zip Шатдаун компьютера (M) (1KB)
HDD_info.zip Информация о диске (M) (1KB) sort.zip Сортировка массива за 0.2 секунды! (M) (1KB)
hddserial.zip Серийный номер диска (24KB) Standart.zip Стандартные диалоги и окна (M) (1KB)
Hibernate.zip Выключение и перезагрузка ПК (M) (1KB) systrayicon.zip Иконка в трее (21KB)
lines2000.zip Пример игры Lines (74KB) transparent.zip Прозрачность окна (M) (1KB)
manifest.zip ХР стиль в аппликухе (2.5KB) Tray_icon2.zip Икнока в трее 2 (M) (1KB)
mdlMain.zip ХР стиль в приложении (M) (1KB) Tray_icon.zip Иконка в трее (M) (1KB)
winwordorfo.zip Проверка орфографии с помощью Word'а (1.9KB)    

Компоненты:

Ссылка
Описание
Ссылка
Описание
Кнопка с текстовым полем Двухцветный прогресс бар
Электронные часы Бегущая строка
Компонент редактирования даты Иконка в трее
Кнопка в стиле XP, Office, и др. TextBox вмещающий более 65КБ текста
Прогресс Бар в классическом стиле Вертикальный лейбл
Кнопка Плейер
Компонент для создания гиперссылок Программное создание иконки NEW!!!

Статья

Есть вопросы относительно статьи, задавайте!

Вопрос задает: Serg:
Здравствуйте, можно ли получить описание операторов языка?

Отвечает автор:
Пожалуйста:
Краткие описания основных функций и команд VB (для начинающих)
Это кpаткий спpавочник по опеpатоpам VB.


Abs (функция) - возвращает абсолютное значение числа
And (операция) - логическое И
AppActivate (оператор) - активизирует окно приложения
Array (функция) - создает массив из параметров и возвращает его какпеременную типа Variant
Asc (функция) - возвращает числовой код первого символа строки аргумента
Atn (функция) - возвращает арктангенс числа в радианах
Веер (оператор) - проигрывает звуковой сигнал через динамик компьютера
Call (оператор) - передает управление процедуре модуля (Sub), функциимодуля (Function) или подпрограмме DLL
CBool (функция) - приводит выражение к типу Boolean
CByte (функция) - преобразует выражение к типу Byte
ССur (функция) - преобразование выражения к типу Currency
CDate (функция) - преобразование выражения к типу Date
CDbl (функция) - преобразование к типу Double
ChDir (оператор) - изменяет текущий каталог на устройстве
ChDrive (оператор) - изменяет текущее устройство
Choose (функция) - возвращает значение из списка аргументов с определеннымпорядковым номером
Chr (функция) - возвращает символ, связанный с определенным числовымкодом
CInt (функция) - преобразование выражения к типу Integer
CLng (функция) - преобразование выражения к типу Long
Close (оператор) - закрывает файл, открытый оператором Open
Command (функция) - возвращает командную строку, используемую длязапуска Visual Basic или приложения на Visual Basic
Const (оператор) - объявления констант
Cos (функция) - возвращает косинус числа
Create Object (функция) - создать OLE Automation объект
CSng (функция) - преобразование выражения к типу Single
CStr (функция) - преобразование выражения к типу String
CurDir (функция) - возвращает текущий каталог логического устройства
CVar (функция) - преобразование выражения к типу Variant
CVErr (функция) - возвращает подтип ошибки, для определенного пользователемномера ошибки
Date (оператор) - устанавливает значение системной даты
Date (функция) - возвращает значение системной даты
DateAdd (функция) - возвращает переменную типа Variant, содержащуюдату, отличающуюся от заданной на определенный интервал времени
DateDiff (функция) - возвращает число временных интервалов между двумядатами
DatePart (функция) - возвращает определенную часть заданной даты
DateSerial (функция) - возвращает дату для заданного года, месяцаи дня
DateValue (функция) - возвращает дату
Day (функция) - возвращает число от 1 до 31, соответствующее текущемудню месяца
DDB (функция) - возвращает значение амортизационных потерь за определенныйпериод
Declare (оператор) - на уровне модуля объявляет ссылки ко внешним подпрограммамв DLL
Deftype (операторы) - устанавливает тип данных по умолчанию на уровнемодуля для переменных, параметров подпрограмм, а также возвращаемыхзначений для функций и операторов Property Get, начинающихся с определенныхсимволов
Dim (оператор) - объявляет переменные и выделяет память под них
Dir (функция) - возвращает имя файла или каталог, подходящий дляданного шаблона или атрибута файла, или метку тома устройства
DoEvents (функция) - прерывает выполнение приложения
Do... Loop (оператор) - повторяет блок команд до тех пор, пока условиеверно или до тех пор, пока условие не станет верным
End (оператор) - заканчивает подпрограмму или блок команд
Environ (функция) - возвращает строку, связанную с переменной окруженияоперационной системы
EOF (функция) - возвращает значение, указывающее, достигнут ликонец файла
Eqv (оператор) - проверяет логическое равенство двух выражений
Erase (оператор) - повторно инициализирует элементы массивов фиксированногоразмера и перераспределяет память под динамические массивы
Error (оператор) - эмулирует возникновение ошибки
Error (функция) - возвращает текст сообщения данного номера ошибки
Exit (операторы) - осуществляет выход из циклов Do ... Loop, For... Next, функции и процедур
Ехр (функция) - возвращает экспоненту числа
FileAttr (функция) - возвращает режим открытия или номер (handle) файла
FileCopy(onepamop) - копирует файл
FileDateTime (функция) - возвращает дату и время создания или последнеймодификации файла
FileLen (функция) - возвращает длину файла в байтах
Fix (функция) - возвращает целую часть числа
For Each...Next (оператор) - повторяет одну и ту же последовательностькоманд для каждого элемента массива или коллекции
For...Next (оператор) - повторяет последовательность команд определенноечисло раз
Format (функция) - форматирует выражение в соответствии с заданнымформатом
FreeFile (функция) - возвращает следующий не занятый номер файла дляиспользования в операторе Open
Function (оператор) - объявляет имя, аргументы и код подпрограммы,возвращающей значение (функции)
FV (функция) - возвращает значение ренты, основываясь на периодическихвзносах и постоянной норме капиталовложений
Get (оператор) - читает данные из открытого файла в переменную
GetAttr (функция) - возвращает атрибуты файла, каталога или меткитома
GetObject (функция) - возвращает OLE Automation объект для файла сданным расширением
GoSub... Return (оператор) - выполняет подпрограмму
GoTo (оператор) - передает управление определенной строке подпрограммыбез возврата контроля
Hex (функция) - возвращает строку, представляющую шестнадцатеричноезначение числа
Hour (функция) - возвращает целое число в диапазоне 0 - 23 включительно,представляющее определенный час дня
If...Then... Else (оператор) - выполнение групп команд в зависимостиот значения выражения
Iff (функция) - возвращает одно из двух значении в зависимости от значениявыражения
Imp (операция) - импликация двух выражений
Input (функция) - возвращает символы из файла, открытого для последовательногодоступа или как двоичный файл
Input # (оператор) - считывает данные из открытого файла в переменные
InputBox (функция) - показывает диалоговое окно ввода, ожидает вводатекста и возвращает содержимое введенного текста, после закрытия окна
InStr (функция) - возвращает позицию первой найденной подстроки в строке
Int (функция) - возвращает целую часть числа
Is (операция) - сравнение двух ссылок на объекты
IsArray (функция) - возвращает булево значение, указывающее, являетсяли данная переменная массивом
IsDate (функция) - возвращает булево значение, указывающее, можетли выражение быть преобразовано к типу Date
IsEmpty (функция) - возвращает булево значение, указывающее, инициализированоли значение данной переменной
IsError (функция) - возвращает булево значение, указывающее, являетсяли выражение значением кода ошибки
IsMissing (функция) - возвращает булево значение, указывающее,был ли передан данный необязательный параметр в подпрограмму
IsNull (функция) - возвращает булево значение, указывающее, несодержит ли выражение недопустимое (Null) значение
IsNumeric (функция) - возвращает булево значение, указывающее,может ли данное выражение рассматриваться как число
IsObject (функция) - возвращает булево значение, указывающее, являетсяли выражение объектом OLE Automation
Kill (оператор) - удаляет файл
LBound (функция) - возвращает значение нижней границы индекса массива
LCase (функция) - возвращает строку в нижнем регистре
Left (функция) - возвращает определенное число символов с начала строки
Len (функция) - возвращает число символов строки или число байт,необходимых для хранения переменной
Let (оператор) - присваивает значение выражения переменной или свойству
Like (операция) - сравнение двух строк
Line Input # (оператор) - считывает строку из файла в переменную
Load (оператор) - загружает в память форму или элемент управления
LoadPicture (функция) - загружает графический образ в объекты: Form,
Loc (функция) - возвращает текущую позицию чтения/записи в открытомфайле
Lock (оператор) - контролирует доступ других процессов ко всему или части открытого файла
LOF (функция) - возвращает размер в байтах открытого файла
Log (функция) - возвращает натуральный логарифм числа
LSet (оператор) - копирует строку в строковую переменную, а такжекопирует значение переменной одного специализированного типа в переменнуюдругого специализированного типа
LTrim (функция) - возвращает копию строки без лидирующих пробелов
Mid (оператор) - замещает определенное число символов в строке на символыиз другой строки
Mid (функция) - возвращает определенное число символов с определеннойпозиции строки
Minute (функция) - возвращает целое число в диапазоне 0 - 59, представляющееминуту часа
MkDir (оператор) - создает новый каталог
Mod (операция) - возвращает остаток от деления двух чисел
Month (функция) - возвращает целое число в диапазоне 1 - 12, представляющееномер месяца
MsgBox (функция) - показывает сообщение в диалоговом окне, ожидаетвыбор одной из кнопок пользователем и возвращает значение, указывающее,какая кнопка была выбрана
Name (оператор) - переименовывает файл или каталог
Not (операция) - логическое отрицание
Now (функция) - возвращает текущие значения даты и времени
Oct (функция) - возвращает строку, представляющую восьмеричное представлениечисла
On Error (оператор) - устанавливает обработчик ошибок и задает местоположениеподпрограммы обработки; используется также для отмены обработки ошибокподпрограммой обработчика
Оn..GoSub, On...GoTo (операторы) - передача управления на одну изнескольких определенных строк (меток), в зависимости от значения выражения
Open (оператор) - скрывает файл для ввода/вывода
Option Base (оператор) - используется для объявления значения нижнейграницы размерности индексов массивов по умолчанию
Option Compare (оператор) - используется на уровне модуля для объявленияметода сравнения по умолчанию при сравнении строк
Option Explicit (оператор) - используется на уровне модуля для установкипроверки наличия объявлений для всех переменных в данном модуле
Option Private (оператор) - используется на уровне модуля для указания,что весь модуль является Private
Or (операция) - логическое ИЛИ
Partition (функция) - возвращает строку, указывающую, сколько развстретились числа из заданного диапазона
Print # (оператор) - записывает форматированные данные в файл
Private (оператор) - используется на уровне модуля для объявления Privateпеременных и выделяет место в памяти для их хранения
Property Get (оператор) - объявляет имя, аргументы и код подпрограммыполучения значения свойства
Property Let (оператор) - объявляет имя, аргументы и код процедурыустановки значения свойства
Property Set (оператор) - объявляет имя, аргументы и код процедурыустановки ссылки на объект
Public (оператор) - используется на уровне модуля для объявления Publicпеременных и выделяет место в памяти для их хранения
Put (оператор) - записывает переменную в файл
QBColor (функция) - возвращает RGB код, соответствующий номеру цвета
Randomize (оператор) - инициализирует генератор случайных чисел
RGB (функция) - возвращает целое число, представляющее значение RGBкода
ReDim (оператор) - используется на уровне подпрограммы для переопределенияразмера динамических массивов и выделения под них места в памяти
Rem (оператор) - вставка комментариев в программу
Reset (оператор) - закрывает все открытые программой файлы
Resume (оператор) - продолжает выполнение программы после завершенияпроцедуры обработчика ошибок
Right (функция) - возвращает определенное число символов с правой стороныстроки
RmDir (оператор) - удаляет каталог
Rnd (функция) - возвращает случайное число
RSet (оператор) - копирует правую часть строки в строковую переменную
RTrim (функция) - возвращает копию строки без конечных пробелов
SavePicture (оператор) - сохраняет в файл графический образ объектаForm, элементов управления Picture Box или Image
Second (функция) - возвращает целое значение в диапазоне 0 - 59,представляющее секунду в минуте
Seek (оператор) - устанавливает позицию для следующей операции чтенияили записи в открытый файл
Seek (функция) - возвращает текущую позицию чтения/записи открытогофайла
Select Case (оператор) - выполняет одну или несколько команд, в зависимостиот значения выражения
SendKeys (оператор) - посылает одно или несколько нажатий клавиш активномуокну, как если бы они были введены пользователем с клавиатуры
Set (оператор) - связывает ссылку на объект с переменной или свойством
SetAttr (оператор) - устанавливает атрибуты файла
Sgn (функция) - возвращает знак числа
Shell (функция) - запускает внешнюю программу на выполнение
Sin (функция) - возвращает значение синуса угла
Space (функция) - возвращает строку, содержащую определенное числопробелов
Spc (функция) - позиционирование в строке вывода
Sqr (функция) - подсчет значения квадратного корня числа
Static (оператор) - используется на уровне модуля для объявления переменныхи выделяет место в памяти для их хранения. Переменные сохраняют значениядо завершения программы
Stop (оператор) - приостанавливает выполнение программы
Str (функция) - возвращает строковое представление числа
StrComp (функция) - возвращает результат сравнения строк
StrConv (функция) - возвращает преобразованную строку
String (функция) - возвращает строку заданной длины из одинаковых символов
Sub (оператор) - объявляет имя, параметры и тело процедуры
Switch (функция) - подсчитывает значения списка выражении и возвращаетзначение или выражение, связанное с выражением из списка, значениекоторого равно True
Tab (функция) - позиционирование в строке вывода
Tan (функция) - возвращает значение тангенса угла
Time (оператор) - устанавливает значение системных часов
Time (функция) - возвращает значение типа Date, указывающее текущеесистемное время
Timer (функция) - возвращает число секунд, прошедших после полуночи
TimeSerial (функция) - возвращает значение типа Date, содержащеевремя для заданного часа, минуты и секунды
Time Value (функция) - возвращает значение типа Date, содержащеевремя суток
Trim (функция) - возвращает копию строки без начальных и конечных пробелов
Type (оператор) - объявляет на уровне модуля специализированный типданных
TypeName (функция) - возвращает строку информации о заданной переменной
UBound (функция) - возвращает значение наибольшего индекса для даннойразмерности массива
UCase (функция) - возвращает строку, преобразованную в верхний регистр
Unload (оператор) - выгружает форму или элемент управления из памяти
Unlock (оператор) - контролирует доступ других процессов ко всему иличасти открытого файла
Val (функция) - возвращает числовое представление строки
VarType (функция) - возвращает значение, указывающее тип переменной
Weekday (функция) - возвращает целое число, представляющее день недели
While...Wend (оператор) - выполняет в цикле последовательность команддо тех пор, пока верно условие
Width # (оператор) - назначает ширину строки вывода для операции записив открытый файл
With (оператор) - выполняет последовательность команд для конкретногообъекта или переменной специализированного типа
Write # (оператор) - записывает данные в файл
Хоr (операция) - исключающее ИЛИ
Year (функция) - возвращает целое число, представляющее год

Дружественные сайты
http://www.delphi.int.ru - Программирование на DELPHI: Вопросы и Ответы читателей; Статьи по программированию на Delphi, других языках программирования, графике (OpenGL/DirectX); Компоненты, Пакеты, Plug-in'ы, Модули для Delphi; Исходники программ, игр; Документация и ссылки на документацию по программированию; Рассылка, в которой каждый программист найдёт что-то полезное!

http://infomania2004.webhost.ru. Этот сайт создан для того, чтобы вы могли получить интересующую вас информацию с минимальными затратами сил и времени. Если вы не нашли здесь нужной информации, оставьте заявку...">

Все о Динамо - www.DinamoMania.ru На этом сайте вы найдете все новости и интервью ВСЕХ видов спорта Динамо. Также на сайте есть таблицы всех видов спорта. Видео и Фото материалы. И все это на одном сайте - www.DinamoMania.ru Это первый и единственный сайт, который освещает все виды одного клуба.
Юмор

Последний звонок:
- Наталья, вы же учитель литературы! Вы должны учить детей прекрасному, а не как открывать глазом бутылки!

***

- Я себе мыло "Дав" купила.
- Дожили! Мылодав она купила! То есть без мылодава мыло выдавить мы не сможем!

:))

Наши партнеры

Рассылки Subscribe.Ru
Visual Basic для новичков и профессионалов
Программирование на Delphi

Хотите стать нашим партнером? Пишите сюда.


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.vbforbeginprof
Отписаться
Вспомнить пароль

В избранное