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

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


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

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

Наш Web-портал:

Тема выпуска:
Выпуск #47
От 23.01.2006
Вопросы и ответы
Вопросов: 11. Ответов 14 на вопросы: 99, 115, 155, 159, 170, 174, 175, 176, 177, 178, 181.
От Автора

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

Итак, отпуск мой длился достаточно много времени: 2 месяца. За это время я успел устроиться на новую работу, отметить новый год. Но времени на все мало, а рассылка не выходит и не выходит.
Сегодня я твердо решил написать очередной выпуск. Это первый выпуск за этот год.

 
Новости сайта, форума
Уважаемые подписчики!
Недавно я провел маленькую сводку между участниками рассылки и зарегистрированными пользователями сайта. Я был очень удивлен, что всего 5! участников рассылки зарегистрированы на сайте. Учтите, в скорем времени появится система "Эксперт" и все участники рассылки будут переведены на эту систему. Вы не сможете ответить или задать вопрос, не имея зарегистрированного аккаунта на сайте. Вы также не сможете скачать защищенные файлы, не имея аккаунта на сайте.

Меня еще удивляет то, как некоторые пользователи заполняют регистрационную информацию в анкете при регистрации. Вместо того, чтобы оставить поле пустым, там появляются различные символы, произвольной генерации руками пользователя. Этого делать я не рекомендую, так как _ВСЕ_ письма с регистрацией попадают на расммотрение модератором. Если такое будет продолжаться, я приму меры, которые окажутся достаточно жесткими, вплоть до удаления аккаунта на сайте с невозможностью повторной регистрации.
 
Обучение для новичков
 

Обучение продолжится в следукющем выпуске

 
Вопросы и ответы
Наши лидеры
Место
Имя (ник)
Счет
1
Игорь 167
2
*Casper* 112
3
Stormbringer 92
4
Bourn None 77
5
Андрей 73
6
HouseBugs 60
7
Bullet [PCLO] 59
8
Перекладов Владимир 36
9
Oleg K. 33
10
Super Vadim 29


(+) - на место выше, (-) - на место ниже, (=) - прежнее место, (New!) - впервые в таблице.

Всего участников: 83
Общее число баллов: 1356
Максимальный счет: 167
Минимальный счет: 2
Новые вопросы

185/ Уважаемые программисты, у меня такая проблема: Написал программу для учета товара в магазине. Приходы расходы - все без проблем, а вот с отчетами за период встал в тупик. VB-6, база данных Access. в базе данные записаны следующим образом: ID№, наименование, дата (прихода или расхода), цена, кол-во и т.д. Проблема в следующем: нужно взять из базы данные за определенный период, затем в выбраном избавиться от записей с повторяющимися названиями или ID№, но при этом сложить количество. подскажите где можно нарыть похожий код.Заранее благодарен. Вячеслав. [Ответить]
186/ Привет всем! Подскажите пожалуйста ка VB6 узнать COM порт и название
модема. И ещё меня интересует работа с реестром(регистром). Бальшое спасибо.
[Ответить]
187/ Помогите пожалуйста. Как зделать транслитерацию (перевод букв русского алфавита в английский) с текста который записан в Textbox? [Ответить]
188/ при открытии с помощью макроса Excel текстового файла с количеством строк более 65536 строки не умещающиеся на листе просто не попадают в Excel либо выдает ошибку. как разделить текстовый файл на несколько листов (книг) средствами VBA? [Ответить]
189/ Как сделать окно способным принимать файлы из проводника windows (Drag'n'Drop) Заранее спасибо. [Ответить]
190/ Сел писать часы со стрелками, и не смог вывести зависимость координат стрелки от секунд, минут, часов. Мож у кого готовый примерчик есть - тоже
пойдет.
[Ответить]
191/ Мож есть у кого пример из книги Д. Эпплмана "Win32API и Visual Basic" на тему модема. Называется CommDemo. Пришлите плз. [Ответить]
192/ Здравствуйте, уважаемые программисты.
У меня несколько вопросов:
Можно ли к проекту подсоеденить файл txt, если можно, то как?
Есть ли такой компонент, в котором отображаются и папки и файлы вместе
со значками?
Создал игру "Кто хочет стать миллионером", проигрываю некоторые
звуковые файлы с помощью функции PlaySound, допустим:

Dim x as long
x = PlaySound(CurDir + "\Wav\million.Wav", 0, H1 Or H10)

такая проблема: этот файл проигрывается долго, 30 секунд. В это время
программа как будто виснет, и пока файл до конца не проиграется
приходится ждать. Можете подсказать такой код, чтобы остановить
проигрыш файла.

Заранее спасибо!
[Ответить]
193/ Мой друг учится в институте на заочном. Дали ему решить задачу. Он сам не может, а так как я уже
начал изучать VB6.0, то, конечно, он обратился ко мне за помощью.
Задача такая: создать программу перестановки в матрице V(A,A) строки, которая имеет
наибольшую сумму элементов среди других строк, со столбцом, который имеет наименьшую сумму
элементов среди других столбцов. На форме должна быть выведена входная матрица и выходная с произведённой
заменой строки и столбца.
Я уже форму сделал, написал код для ввода элементов матрицы и вывода входной матрицы в форме.
Но никак не могу ещё додумать код нахождения Max-строки и Min-столбца и замены их местами с выводом
результирующей матрицы.
Время поджимает, другу я пообещал, а результата пока нет.
Помогите, кто может!!!
Заранее благодарен.
[Ответить]
194/ Можно ли сделать так, чтобы когда нажимаешь на крестик, программа не закрывалась бы, а допустим вызывалась процедура Иконка_В_Трей? [Ответить]
195/ Создаю справочник телефонов, есть две колонки: "e-mail", "Адрес
сайта". Можно ли сделать так, чтобы при нажатии на кнопку
Написать_письмо, открывалась бы почтовая программа и окно, где
набираешь текст письма, и чтобы при нажатии на кнопку Открыть_сайт
открывался бы браузер и именно тот сайт.

Заранее спасибо!
[Ответить]
196/ Здравствуйте уважаемые програмисты!
У меня к вам вот какой вопрос, програмирую я на VB.NET 7.1, и сейчас
создаю свою программу с своим расширением файла. Но не как не получается
разобратся толком с реестром. Програмным путем создал в реестре свое
расширение

Dim rkey As RegistryKey = Registry.ClassesRoot.CreateSubKey(".Cot")

Так же програмным путем создал папку своей программы

Dim kkey As RegistryKey =
Registry.ClassesRoot.CreateSubKey("Catalogue_of_electronic_books")

Так же в папке своей программы создал подпапки для открытия и иконки


Dim akey As RegistryKey =
Registry.ClassesRoot.CreateSubKey("Catalogue_of_electronic_books\\Defaul
tIcon")
Dim bkey As RegistryKey =
Registry.ClassesRoot.CreateSubKey("Catalogue_of_electronic_books\\shell\
\open")
Dim ckey As RegistryKey =
Registry.ClassesRoot.CreateSubKey("Catalogue_of_electronic_books\\shell\
\open\\command")

Но не как не могу присвоить параметр "По-умолчанию" в ключе:

Dim rkey As RegistryKey = Registry.ClassesRoot.CreateSubKey(".Cot")

Значение имени ключа

Dim kkey As RegistryKey =
Registry.ClassesRoot.CreateSubKey("Catalogue_of_electronic_books")

Так же не как не могу понять как програмным путем создать ссылку на свою
иконку в реестре и ссылку на свою программу в ключах

Dim akey As RegistryKey =
Registry.ClassesRoot.CreateSubKey("Catalogue_of_electronic_books\\Defaul
tIcon") Это соответственно иконка

Dim ckey As RegistryKey =
Registry.ClassesRoot.CreateSubKey("Catalogue_of_electronic_books\\shell\
\open\\command") Это соответственно с помощью какой программы открывать

Пожалуйста Не могли бы вы мне помочь разобратся, если возможно примеры.
С уважением Роман Александрович
[Ответить]
197/ Здравствуйте. Подскажите как задержать выполнение программного кода на
666 миллисекунд. Желатьельно пример или исходник.
[Ответить]
198/ Создаю игру РПГ. Возникл вопрос:

1.Как расчитать оптимальный путь от монстра до героя?
Поле - массив объектов из 192 PictureBox(16 PictureBox по горизонтали,
12 по вертикали). Название PictureBox - Tail. В свойстве Tag
содержится символ. Если "0" - клетка пустая, если "Г" - герой, если
"М" - монстр (нельзя проходить), если "П" - патрон (нельзя проходить),
если "К" - камень (нельзя проходить).
[Ответить]
Вопросы без ответов

63/ Здравствуйте! Как сделать столбец для таблицы с помощью VB который будет показывать номера кварталов с min зарплатой(в таблице 4 квартала). Другой столбец - Динамика изменения средней зарплаты по кварталам (рост, падение, колебание, постоянно)\ нужно найти среднее знаение среди записей каждого отдела и чтобы написал динамику изменени, то что напискано в скобках, одно слово. [Ответить]
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 [Ответить]
88/ Здравствуйте. У меня такой вопрос: можно ли из VB послать команду так, чтобы включилась удалённая машина в сети, на которой включен WakeUp on LAN. Если да, то как? За ранее спасибо за оказанную помощь! [Ответить]
117/ Как сделать чтобы при выборе шрифта с помощью Microsoft CommonDialog менялся
и набор символов (Кириллица, Западноевропейский и т.п.)? Спасибо.
[Ответить]
122/ Как сделать чтобы при нажатии на объект ListView НЕ воспроизводился тот
идиотский звук, который воспроизводится?
[Ответить]

130/ Доброго времени суток, User`ы. Подскажите пожалуйсто, как в VB 6.0 к какому-либо устройству в порте COM по определённому адресу? Благодарю за внимание и за ответ. Спасибо. [Ответить]
136/ Здравствуйте!
У меня возникла проблема: для создания страниц сайта специфической тематики (математика) требуется программа, способная сохранять введенные пользователем в объект Equation данные в формате gif или png [как это делает MS Word, при сохранении документа в html формате. Т.е. технологический процесс такой: введение формул в Ворде, сохранение в html -> получение рисунков -> верстка страницы].
Сохранять данные в виде рисунка не проблема, но размер у них не такой какой необходим. Это и есть проблема: как сделать так, чтобы OLE объект со вставленным Equation'ом, изменял свои размеры в соответствии с изменениями размеров Equation'а (как это реализовано в MS Word)
[Ответить]
144/ Подскажите: есть MySQL база, в ней есть какбы ячейки с номером,
например 84538834 или 444449329232, эти ячейки содержат информацию -
числа например 100 332 или 50.
Как можно средствами VB сделать программу которая искала бы в
этой базе значения этих ячеек равные нулю и удаляла бы их, и самое
главное нужен отчет о номерах удалённых ячеек, т.е. сколько чего
удалено из базы.
[Ответить]
159/ Можно-ли в MS Access в таблице сохранить документ html и вывести его на форму для просмотра. А если можно, то как? [Ответить]
160/ Благодарю Игоря за ответ,очень помогло,также уже сделал редактирования.
Но дальше возникли еще вопросы.
Например:
1.Не как не могу сделать меню правка с подменю
копировать,вставить,вырезать.
Ну уже все перепробовал нечего не помагает((((
2.Везде искал но не как не могу найти,хоть что нибудь про импорт и
экспорт из базы данных.
Почему так мало информации по Visual Basic.NET?
Пожалуйста помогите,кто может начинающему.
Учусь програмироватьб на Visual Basic.NET, вроде что-то наченает
получатся,вот только некоторые вещи тормозят.
Заранее благодарен за помощь.
С уважением Роман.
[Ответить]
162/ Вот у меня вопрос. Имею 2 модема. Опишите мне подробно:
1) набор номера
2) соединение межде модемами
3) установка связи
Желательно через MSComm
[Ответить]
166/ Создал Программу: при ОК на кнопку выходит очередной Перл.
Каждый Перл пронумерован. Как спрограммировать на VB6, чтобы при клике на кнопку Найти Перл или хотя бы его Номер по СЛОВУ? Если требуется перешлю Исходник (в архиве 15 Кб).
[Ответить]
167/ Здравствуйте
Как получить спектр музыкального файла?
[Ответить]
168/ Для скачки файла из инета я использую в своей проге такой код:

Private Function DownloadFile(ByVal FromUrl As String) As String
'процедура загрузки файла
Dim hSession As Long

Dim hFile As Long
Dim LLenthFile As Long
Dim AllFile As String
Dim fBuffer As String
Dim Ret As Long

hSession = InternetOpen("прога", 0, "", "", 0)
DoEvents

hFile = InternetOpenUrl(hSession, FromUrl, "", 0, 0, 0)
Do
DoEvents
fBuffer = Space(1024)
InternetReadFile hFile, fBuffer, 1024, Ret
If Ret <> 1024 Then fBuffer = Left$(fBuffer, Ret)
AllFile = AllFile & fBuffer

Loop Until Ret = 0
InternetCloseHandle hFile
InternetCloseHandle hSession
DownloadFile = AllFile
End Function

но он подвисает, думаю что в цикле Do(скачиваю много файлов)
как сделать лучше(но без контролов)?
[Ответить]
169/ Hi.Есть такой вопрос: Еть сайт на котором есть небольшая картинка и она
не постояна тоесть, надо утянуть картинку из определённой части сайта
или хотябы узнать какая картинка загружена в етот момент на сайте? (url
картинки постоянно меняется.). Заранее спасибо.
[Ответить]
171/ Загоняю в ListView список файлов в директории. стиль report.
Проблема - отобразить рядом с файлами значки соответствующих расширений, короче сделать проводник в стиле "таблица". Если подскажете буду благодарен.
[Ответить]
172/ вопрос по RAS:
как получить параметры имеющихся на компе соединений(dial-up)?
[Ответить]
173/ Можно ли программно на ВБ-6 сжать базу данных Access?
Если можно, то подскажите код для выполнения такой операции.
[Ответить]
173/ Чтобы отправлять сообщения по локальной сети через службу сообщений в своей программе я написал функцию вызова команды net send

WinExec "net send " & comp & " " & text ' comp - имя компа text - текст сообщения

Как отправить сообщение не через вызов программы, а через функцию API или через WinSock?
Если это возможно, то как сделать, чтобы получатель не видел имя компа, откуда отсылали сообщение?
[Ответить]
174/ Всем привет! Кто нибудь знает как решать в ВБ диференциальные уравнения. Например такую:
Численно решить методом Эйлера дифференциальное уравнение с заданными начальными условиями на отрезке с шагом h=0,1 при указанных значениях параметров:
y’=1+x y2 ; y(0)=1, a=0, b=1.
[Ответить]
175/ Вопрос стратегического плана.
Есть государственное предприятие - бухгалтерия управления городского
образования.
Можно ли написать (и стоит ли?)с помощью VB6 и Access 2002 прграмму
для начисления заработной платы и удержания налогов, если в
управлении работают около 10000 человек. Способ начисления одинаковый
почти у всех, но почти у каждого есть свои индивидуальные свойства
по математике начисления зарплаты. Есть для этого проекта 15
бухгалтеров с компьютерами. Как лучше сделать (сетевой вариант, но
уровень пользователей желает знать лучшего) или локально каждому по
несколько учреждений на пк?
1с сложновата с интерфейсом и не все получилось у специалистов по 1с
данного профиля, которых приглашали. Они конечно же старались сделать
сетевую версию.
Спасибо. С уважением Некрасов Андрей.
[Ответить]
176/ Здравствуйте!
Возможно ли в VB 6.0 воспроизвести одновременно 2, 3,... несколько звуковых файлов (mp3. vaw. midi)?
Если возможно, то как.
Заранее спасибо.
[Ответить]
179/ Как преобразовать стандартный цвет типа Long в цвета пригодные для
использования со структурой TRIVERTEX и функцией GradientFillRect?
[Ответить]
180/ Помогите!!!У нас компьютеры соединены сетью. Как можно узнать запущено ли определённое приложение на определённой машине а после запустить приложение тамже. [Ответить]
182/ Товарищи программеры, недавно столкнулся с проблемой - на формочке размещен объект типа ListBox, a фон формы замощен рисунком, проблема - ListBox серый и с общей картинкой на форме не сочетается.Не подскажите способы решения этой проблемы и/или альтернативные решения. [Ответить]
183/ Как запустить свою прогу как сервис Винды? [Ответить]
184/ Здравствуйте!
Я по поводу субклассирования.
Определяю стандартную оконую функцию в модуле. Как теперь сделать так, чтобы эта функия вызвала другую, именно из той копии класса, которая субклассирует даное окно?
Напремер:
У меня есть три контрола:

ContrA субклассирует окно 1
ContrB --////--- 2
ContrC --////--- 3

и NewWindowFunction (в стандартном модуле) если она будет вызвана как можно узнать какая именно копия котнрола ёё вызвала? И вызвать функцию именно того контрла, которая ёё вызвала?

Может ёще существует какой-нибудь другой алгоритм? А то я понатия не имею как можно его организовать.

А как еще можно субклассировать окно пренадлежащее другому процессу?
SetWindowLong конечно возвращае ошибку. Для этой цели пользовался специальным контролом, но хотелось бы "избавиться" от необходимости его присутствия для даных целей.
[Ответить]
Ответы на вопросы
 

99/Здравствуйте. Создается регистратор переговоров. Подскажите, пожалуйста, каким образом записать звук в файл, чтобы в дальнейшем можно было открыть его и прослушать? Заранее спасибо. [Ответить]

Отвечает: *Casper*
Тебе поможет Microsoft Multy Media Control

С ним я думаю разберешься, а команда к записи "Record"
Вот в принципе и все. Даешь файл, команду и поехали...

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

115/Как при работе в сети при разрыве связи можно узнать, что связь разорвана удаленным сервером или локальной программой (ошибка 600)? [Ответить]

Отвечает: *Casper*
Если соединение разорвано не программно, значит удаленкой... В любом случае,
если произошло Disconnect, то надо выполнить Close на локалке...

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

155/Здравствуйте. Как изменить иконку у EXE файла програмным методом на VB с помощью функций: BeginUpdateResource, UpdateResource, hResUpdate? [Ответить]

Отвечает: Super-Vadim
BeginUpdateResource, UpdateResource – эти функции мне знакомы. А вот
hResUpdate – такой я не знаю…
Сначала вызывается BeginUpdateResource, затем UpdateResource, а потом
EndUpdateResource. Пример использования:

' Predefined Resource Types
Private Const RT_CURSOR = 1&
Private Const RT_BITMAP = 2&
Private Const RT_ICON = 3&
Private Const RT_MENU = 4&
Private Const RT_DIALOG = 5&
Private Const RT_STRING = 6&
Private Const RT_FONTDIR = 7&
Private Const RT_FONT = 8&
Private Const RT_ACCELERATOR = 9&
Private Const RT_RCDATA = 10&
Private Const RT_MESSAGETABLE = 11
Private Const RT_GROUP_CURSOR = 12
Private Const RT_GROUP_ICON = 14
Private Const RT_VERSION = 16
Private Const RT_DLGINCLUDE = 17

Private Type BITMAPINFOHEADER '40 bytes
a_Size As Long '=40
b_Width As Long
b_Height As Long
c_Planes As Integer
d_BitCount As Integer
e_Compression As Long
f_SizeImage As Long
g_XPelsPerMeter As Long
g_YPelsPerMeter As Long
h_ClrUsed As Long
i_ClrImportant As Long
End Type

Private Declare Function BeginUpdateResource Lib "KERNEL32" Alias
"BeginUpdateResourceA" (ByVal pFileName As String, ByVal
bDeleteExistingResources As Long) As Long
Private Declare Function EndUpdateResource Lib "KERNEL32" Alias
"EndUpdateResourceA" (ByVal hUpdate As Long, ByVal fDiscard As Long)
As Long
Private Declare Function UpdateResource Lib "KERNEL32" Alias
"UpdateResourceA" (ByVal hUpdate As Long, ByVal lpType As Long, ByVal
lpName As Long, ByVal wLanguage As Long, lpData As Any, ByVal cbData
As Long) As Long

Private Declare Sub CopyMemory Lib "KERNEL32" Alias "RtlMoveMemory"
(Destination As Any, Source As Any, ByVal Length As Long)

Dim fBM As BITMAPINFOHEADER

Dim dlHw As Long
Dim dl As Long
Dim mas(1151) As Byte
Dim masColors(255) As Long

Private Sub Command1_Click()
Dim fFileName As String
Dim resID As Long

' Exe-файл, в котором поменяется иконка
fFileName = "C:\Project1.exe"
' Идентификатор ресурса иконки в Exe файле
resID = 30003
' По умолчанию в скомпилированной программе на VB
' иконка 16x16 имеет идентификатор 30003.

' Если bDeleteExistingResources равен True, то все
' ресурсы файла будут удалены
dlHw = BeginUpdateResource(fFileName, False)

fBM.a_Size = 40
fBM.b_Width = 16
fBM.b_Height = 16 * 2
fBM.c_Planes = 1
fBM.d_BitCount = 32
fBM.f_SizeImage = 1024

For i = 0 To 255
masColors(i) = RGB(Int(Rnd * 256), Int(Rnd * 256), Int(Rnd *
256))
Next i

' Собираем все данные в один массив
CopyMemory mas(0), fBM, 40
CopyMemory mas(40), masColors(0), 1024

'40 - на BITMAPINFOHEADER (fBM)
'1024 - на данные растра (masColors())
'128 - на данные маски
dl = UpdateResource(dlHw, RT_ICON, resID, 0, mas(0), 40 + 1024 +
128)

dl = EndUpdateResource(dlHw, False)

End Sub

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

159/Можно-ли в MS Access в таблице сохранить документ html и вывести его на форму для просмотра. А если можно, то как? [Ответить]

Отвечает: *Casper*
Обект OLE надо юзать... Тонкости не помню, знаю, что это сложно

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

170/Здраствуйте.
Столкнулся со следующей проблемой:
Как передать в приложение строку с пробелами и кирилицей в имени файла. "D:\Program Files\IrfanView\i_view32.exe C:\мои картинки\мой рисунок.jpg", где "i_view32.exe" программа обработки графики.
[Ответить]

Отвечает: *Casper*
Как вариант попробуй заключить свою строку в кавычки

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

174/Всем привет! Кто нибудь знает как решать в ВБ диференциальные уравнения. Например такую:
Численно решить методом Эйлера дифференциальное уравнение с заданными начальными условиями на отрезке с шагом h=0,1 при указанных значениях параметров:
y’=1+x y2 ; y(0)=1, a=0, b=1.
[Ответить]

Отвечает: Oleg K.
Ну-ну. Нехорошо получается. Кто-то не ходит на занятия, а потом
ловит на слабо' простачков, которые за него лабораторные делать
будут??? От себя ставлю "два" за предмет и "пять" за прохиндейство
(или, если угодно, "организаторские способности").

Для остальных любознательных отвечаю (предупреждаю, что ответ
несколько выходит за рамки VB):
Решение дифференциальных уравнений у'=f(x,y) численным методом
заключается в том, чтобы вместо нахождения непрерывный функции У=F(x)
получить таблицу значений этой функции для заданной последовательности
аргументов (y[i] = F(x[i]), где (i=1,2,…, n) и F(x[0])=y[0]).
С какой "частотой" вычислять значения функции определяется величиной
h=х[k]-х[k-1] называемой шагом интегрирования (выбирается произвольно,
путем деления интервала иксов на произвольное (N) число равных отрезков).
Чем больше N (и, соответственно, чем меньше h), тем меньше погрешность.

Определение несколько искаженное, так что к математикам просьба - чур
помидорами не бросатья. Индексы взяты мною в квадратные скобки, т.к.
иначе их трудно выделять в тексте.

Итак, что же нужно для решения дифференциального уравнения у'=f(x,y)
методом Эйлера?

Разбиваем отрезок [a, b] на n равных частей и получаем
последовательность х[0], х[1], х[2],…, х[n],
где x[i] = x[0]+i*h (i=0,1,…, n),
а h=(b-a)/n - шаг интегрирования.
(В вопросе шаг задан (h=0,1), т.е. отрезок разбит на 10 частей)

Расчетные формулы для 1-го шага:
y[1] = y[0]+h*f(x[0],y[0]) (1)
x[1] = x[0]+h (2)

Соответственно, расчетные формулы для последующих шагов:
y[i+1] = y[i]+h*f(x[i],y[i]) (3)
x[i+1] = x[i]+h (4)

Итак, дело за малым. Нужно записать уравнение (3) и (4) в операторах
VB или другого ЯП, и прокрутить его в цикле пока "икс" не выйдет за
границу отрезка (не сравняется с "b"). При этом выдавая очередное
значение y[i].

При старте программы полагаем
i = 0
x[0] = 0
y[0] = 1

Чтобы не возиться со степенями, y^2 можно заменить записью y*y
т.е. запись (1+xy^2) представим так:
f(x[i],y[i]) = 1 + (x[i]*y[i]*y[i])

y[i+1] = y[i] + 0.1*(1 + (x[i]*y[i]*y[i]))

и вперед...

Вот, собственно, и все решение. Высшая математика - это же не
обязательно сложно. Все сложное можно и нужно упрощать до тех
пор, пока оно не станет понятным. И пусть теперь кто-нибудь
попробует сказать, что решение дифференциальных уравнений численным
методом не под силу ЛЮБОМУ. Беда наших преподавателей в том, что они
читают свой предмет как чистую науку, не отдавая себе отчета в том,
что учащиеся, в большинстве своем, просто не в состояни воспринимать
их "теоретизирования". А почему? Да потому, что у человека отсутствует
мотивация изучать предмет, полезность которого не очевидна. Я убежден
в том, что вопрос "а для чего это нужно?" является главным при
изучении любой дисциплины. При таком подходе число "хороших"
студентов значительно увеличится, а учеба не будет сводиться к
принципу "сдал и забыл".

Большинство работ Эйлера (а у него их почти 800!!!) носили прикладной
характер, а многие вообще делались "на заказ". Ну кто станет платить
за бесполезную работу?
Вот краткий перечень того, над чем работал Эйлер:
Математический анализ, аналитическая геометрия, дифференциальное
исчисление, "Полное введение в алгебру", теория вероятностей,
комплексный анализ и дифференциальная геометрия, топология,
картография, механика, "Теория движения твердых тел", теория
музыки!!!, артиллерия (проблемы баллистики), полная теория
кораблестроения и маневрирования судов, оптика, астрономия, небесная
механика ("Теория движения планет и комет"), гидродинамика...

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

x[0] = 0.0 y[0] = 1
x[1] = 0.1 y[1] = 1.1
x[2] = 0.2 y[2] = 1.2121
x[3] = 0.3 y[3] = 1.341483728
x[4] = 0.4 y[4] = 1.495471086
x[5] = 0.5 y[5] = 1.684928437
x[6] = 0.6 y[6] = 1.926877629
x[7] = 0.7 y[7] = 2.249649072
x[8] = 0.8 y[8] = 2.703913539
x[9] = 0.9 y[9] = 3.388805413
x[10] = 1.0 y[10] = 4.522365604

P.S.
Поскольку VB под рукой не оказалось, программа записана на VBA Excel

Option Explicit
Sub Эйлер()
'
' Эйлер Макрос
' Макрос записан 07.11.2005 (Олег К.)
' Решение диффер. уравнения
' y' = 1+xy^2
' Результат решения помещается на текущем листе
' в верхнем углу (ячейки A1:C11)
'

Const h = 0.1
Dim i As Integer
Dim x, xi, yi As Variant

' Для наглядности, откажемся от расчета x[i] непосредственно в программе
' и заполним массив известными значениями x[i] для каждого шага (i)
' Теперь к иксам можно обращаться по их индексам (i)

x = Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1)

' Задаем начальные условия
xi = 0
yi = 1

For i = 0 To 10
' Заполняем 1-й столбец значениями i
Cells(i + 1, 1).Value = "i = " & i
' Заполняем 2-й столбец значениями x[i]
Cells(i + 1, 2).Value = "x[" & i & "] = " & x(i)
' Расчитываем y[i]. Если y[i] это y[0], то значение ф-ции
' у нас уже есть. Тогда его и берем.
If i = 0 Then
yi = 1
Else:
yi = yi + h * (1 + (x(i - 1) * yi * yi))
End If
' Заполняем 3-й столбец значениями y[i]
Cells(i + 1, 3).Value = "y[" & i & "] = " & yi
Next i

End Sub

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

175/Вопрос стратегического плана.
Есть государственное предприятие - бухгалтерия управления городского
образования.
Можно ли написать (и стоит ли?)с помощью VB6 и Access 2002 прграмму
для начисления заработной платы и удержания налогов, если в
управлении работают около 10000 человек. Способ начисления одинаковый
почти у всех, но почти у каждого есть свои индивидуальные свойства
по математике начисления зарплаты. Есть для этого проекта 15
бухгалтеров с компьютерами. Как лучше сделать (сетевой вариант, но
уровень пользователей желает знать лучшего) или локально каждому по
несколько учреждений на пк?
1с сложновата с интерфейсом и не все получилось у специалистов по 1с
данного профиля, которых приглашали. Они конечно же старались сделать
сетевую версию.
Спасибо. С уважением Некрасов Андрей.
[Ответить]

Отвечает: Филатов Евгений
Я тоже работаю на государственном предприятии ЖКХ.
У нас работает около 6000 человек. На предприятии
имеется вычислительный центр штатом 40 человек,
которые занимаются разработкой ПО.
Имеются отдельные задачи: "Зарплата", "Материалы",
"Касса", "Штатное расписание" и др.
Все они передают данные в задачу "Главная книга".
Я веду задачу "Основные средства", в базе 25000
объектов ОС на 500 млн. грн. (~USD 100 млн.).
Написано на VB6, данные хранятся в MS Access97
(в связи с тем, что программа начиналась писаться
в 2000 г. с использованием DAO).
Я единственный пишу на VB, остальные на DELFI, но
возможно скоро и другие перейдут, т.к. DELFI
стоит 5000-15000 грн., а VB NET - 565 грн.
Данные хранятся в базах VisualFoxpro, SQL Server2000,
доступ к ним через BDE или ADO.
Я сталкивался с 1С, и могу сказать, что эта
программа подходит для небольших предприятий, при
больших объемах тормозит жутко. Тем более, что
для внесения изменений или настройки необходим
специалист по 1С, желательно в штате на окладе,
а они на это не пойдут, т.к. зарабатывают в
несколько раз больше, чем на предприятии.
Мне кажется, что для такого большого предприятия
необходим свой ВЦ, тем более необходимо устанавливать
и другие программы - Windows, антивирусы, почтовые
серверы и т.п., заниматься ремонтом техники.

Если автор сайта оставит в письме мой адрес, пишите.
--
С уважением, Филатов mailto:Jones@hte.vl.net.ua

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


Отвечает: Konstantin Kisarinov
ответ на твой вопрос не углублясь в тему МОЖНО ВСЕ,
а если по теме:
сетевая версия БД это СЛОЖНО и тут не в языке дело
просто любая база работает только содним пользователем
из личного опыта многопользователькое понятие ОТСУТСТВУЕТ
что касается VB там просто пишеш строку конекта к базе

!!!!!!!!!!!Отсебятинка!!!!!!!!!
(я сделал бы так:
(для тех кто не понял к чему веду)создал файл ТХТ переименовал расширение в udl
запустил и настроил на сетевую базу,
а вот код
Set cn = New ADODB.Connection
cn.ConnectionString = "FILE NAME=" & App.Path & "MoyaBAZA.udl"
cn.Open)
!!!!!!!!!!!Отсебятинка!!!!!!!!!

что касается базы Access штука весёлая, простая, НО ГЛЮЧИТ
не у верен но где то читал что у Access есть ограничение на количество
записей гдето за 200 000 или болие.

!!!!!!!!!!!Отсебятинка!!!!!!!!!
что касается базы я написал бы это под SQL сервер
он просто расчитан на такое считает быстро в работе прост.
что касается разделения прав ты ето правильно подумал
но не каждому локально ЗАМАНАЕШСЯ
создал отдельную таблицу в базе с заведенными пользователями
и каждому своё учреждение (так можно свалку избежать)
справочник учреждений каждому свой код, сответствено коду учереждения его
работники, и так далие...
!!!!!!!!!!!Отсебятинка!!!!!!!!!

что касается корявости рук работников, оно везде одинаково ПРОСЧЕ сказать
чем образование бухгалтер в плане компьтера, тем меньше зарплата
комьютершиков, админов, програмеров, и т.д. и т.п.

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


Отвечает: Oleg. K.
Написать-то безусловно можно, а вот сто'ит ли...
Сколько человек будет работать над проектом? Вы один? 15 бухгалтеров
не в счет :)) Т.е. они могут конечно помочь в формировании
технического задания, но четкую задачу поставить не смогут. А важность
предварительного анализа проблемы недооценивать нельзя. Сейчас, судя
по Вашим же словам, нужно что-то простое в использовании для
начисления зарплаты. Пройдет совсем немного времени, и вы поймете, что
нужно вести еще и кадровый учет, т.к. люди увольняются, принимаются,
болеют, переходят на другую должность, занимаются совмещением и прочая
и прочая... и все это сказывается на порядке начисления зарплаты. А
там и приказы о приеме на работу, на увольнение. Отчетность (типовые
формы со штрих-кодированием). Кто будет поддерживать поект если Вы
вдруг уйдете с этой работы? А как обеспечить экспорт и импорт сведений
во внешние программы. А обяжут подавать отчетность на магнитных
носителях. Вы готовы решать и эту проблему?
Какие сроки отпущены на проект?
Каков бюджет проекта?
Вот поучительная, как мне кажется, история.
2 года назад я занимался сходной проблемой для одного частного
предпринимателя (штат менее 100 человек). Сначала задача
формулировалась так: "Надоело заполнять карточки по ЕСН вручную, надо
это автоматизировать, желательно дешево, а лучше бесплатно". Т.к.
базой для ЕСН является зарплата пришлось реализовать весь процесс ее
начисления. А чтобы было быстро, дешево, просто и наглядно
инструментом был выбран Excel-2000. Задача упрощалась еще и
тем, что за основу был взят проект расчета зарплаты
Ковалёвой Л.В. (zarplataexcel.da.ru) стоимостью 300 руб. простой
и наглядный (демка на 4-х человек даром), с расчетом платежей на
обязательное пенсионное страхование и подоходного (вообще, это был
очень хороший пример того, что можно сделать очень малой кровью. Даже
без макросов!!! Рекомендовал бы посмотреть всем, кто занимается малой
автоматизацией на это, по-настоящему продуманное, законченное решение.)
На эту "рыбу" был навешен расчет карточек по ЕСН и ведомость
начисления зарплаты. Готовый РАБОЧИЙ вариант был изготовлен в три дня.
Через 20 минут осмотра образца все согласились, что "программа" простая,
наглядная, удобная... Но! А умеет ли она заполнять... и тут
началось... Что нужно еще и декларацию заполнять, и отчет в ГНИ и т.д.
Никто уже не вспоминал о начальном ТЗ, которое было выполнено в полном
объеме. В общем купили ребята у 1С "КАМИН-2", который умел все и был
автоматизирован весь участок.
Все это предстоит и Вам. У бух-ов куча всяких бумажек (журналы-ордера,
табели, ведомости, карточки, бланки, формы, отчеты, декларации и т.д.
и т.п.). Их мало того что много (простите за каламбур), так еще и
формы постоянно меняются. Меняется порядок расчета начислений вплоть
до базы, ставки и прочее.
Тянуть все это одному практически нереально, и уж тем более за
бюджетную зарплату. Задумайтесь сколько стоит автоматизация 15 рабочих
мест в 1С с какой-нибудь стандартной конфигурацией? Вам столько
заплатят?
Думаю, что приглашение специалистов из 1С было верным шагом к решению
Вашей проблемы, но может просто не повезло со специалистами?
В конце концов Ваше "управление городского образования" не одно на всю
страну. Позвоните соседям и спросите как это решено у них, кем,
довольны ли результатом.

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

176/Здравствуйте!
Возможно ли в VB 6.0 воспроизвести одновременно 2, 3,... несколько звуковых файлов (mp3. vaw. midi)?
Если возможно, то как.
Заранее спасибо.
[Ответить]

Отвечает: Перекладов Владимир
В архиве есть примеры воспроизведения wav и mp3.
Midi я не нашел, но если понадобиться, сделаю
Скачать прикрепленный файл >>>
Оценка за ответ: 5


Отвечает: *Casper*
МОЖНО!!!
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA"
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private Declare Function sndStopSound Lib "winmm.dll" Alias "sndPlaySoundA"
(ByVal lpszNull As Long, ByVal uFlags As Long) As Long
Sub Play3Files
SndPlaySound "File1.wav",&H1
SndPlaySound "File2.wav",&H1
SndPlaySound "File3.wav",&H1
End Sub


Сразу 3 файла, но с задержкой на открытие...
Еще вариант для скорейшего воспроизведения - считать сами файлы в буфер
Dim B() as Byte
Open "File1.wav" for binary as #1
Redim B(Lof(1))
Get #1,1,b
Close #1
'и передать буфер на воспроизведение
SndPlaySound b, &H1

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

177/Здравствуйте!
Как добавить иконку в меню? Нужно, чтобы меню состояло из текста с
картинкой. При наведении мышки выделяться должен только текст, а
рисунок должен выходить немного вперед (такой же эффект наблюдается в
меню бейсика и многих другию приложений).
Заранее спасибо!
[Ответить]

Отвечает: Перекладов Владимир
Ну сдесь немного по-другому. Вокрук картинки рамка не появляется, но у
картики появляется красивая тень. Вобщем с
Скачать прикрепленный файл >>>
Оценка за ответ: 5


Отвечает: Stormbringer
Ну сдесь немного по-другому. Вокрук картинки рамка не появляется, но у
картики появляется красивая тень. Вобщем с
Скачать прикрепленный файл >>>
Оценка за ответ: 5

178/ Есть форма на которой расположены елементы управления из стандартного набора VB6 и добавленые из библиотеки FM20.dll.
Нужно разместить combobox из FM20.dll, на MSFlexGride, а он упорно рисуется под ним.
На прередний план не переносится, Zorder не помогает.
Можно ли как то это побороть?
[Ответить]

Отвечает: Перекладов Владимир
Попробуй combobox запихнуть в picturebox или frame

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

181/Люди знающие, вот чтобы создать DLL'ку в С++ мы делаем функции DLLEntryPoint или DLLMain.В VB этот трюк не катит.Не подскажите как реализовать DLL в VB.
Примерчики бы не помешали.
[Ответить]

Отвечает: Stormbringer
немного теории:

длл VB отличается от длл в С++ тем, что длл в С++ представляет собой сборник функций, т.е. функции вызываются напрямую из длл по номеру или имени.

в длл созданной VB нельзя напрямую вызывать функции.
длл VB состоит из класса(ов) димуя которые из другого проекта можно получить доступ к функциям, процедурам, свойствам этих классов. чтобы нормально использовать длл в ней должен быть хотя бы один модуль класса со свойством Instancing = 5 (чтобы виден был из других проектов).
в длл также можно вставлять формы, стандартные модули, но они не будут видны из другого проекта, а поэтому весь интерфейс работы в формой и стандартным модулем придется реализовывать через модуль класса видный из проекта EXE (см. выше) т.е

в длл
класс - Cls
в классе процедура ShowForm:
Public Sub Showform()
Form.Show
End Sub
форма - Form
в ехе
запускается процедура Sub Main
Private Sub Main()
Dim C as DLLProjectName.Cls
Set C = New DLLProjectName.Cls
Set
C.ShowForm
End Sub

примерно так можно показать форму находящуюся в длл из Exe проекта.
теперь о способах сделать длл доступной из другого проекта:

1. Создать группу проектов и поместить в нее проект длл и проект EXE.
затем выбрать проект EXE и нажать Проект - > компоненты - > найти там проект длл и поставить около него галку.
2. поместить скомпиленную длл в папку с проектом EXE, а в EXE использовать оператор CreateObject:

Dim C as Object
Set C = CreateObject("DLLProjectName.Cls")

3. поместить скомпиленную длл в папку System и использовать код из п2.

4. скомпилить длл, поместить в любую папку и зарегистрировать командой RegSvr32 DLLFullPath
(из командной строки)

надеюсь все ясно объяснил еще см. вложение - простенький пример п.1
Скачать прикрепленный файл >>>
Оценка за ответ: 5


Отвечает: *Casper*
Реальную DLLку на бэйсике не сделать, а вот ActiveX реально...
Классмодуль должен называться DLL
В нем например функция
Function MyFun(Init as Integet) as integer
MyFun=Init+1
End Function

Компилируем DLL, получаем к примеру файл LIB.DLL

В своем проекте делаем переменную
Dim OBJ as Object
Set OBJ = CreateObject("LIB.DLL")
'Далее все проще некуда
Dim I as integer
i=OBJ.Init(i)
И переменная I через библиотеку прибавит значение на 1

Оценка за ответ: 5
 
Статья выпуска
Присылайте свои статьи на наш адрес: vb-question@list.ru
 
Юмор

"Святой Отец Вындоуз-- я продал твои иконы!!!"

***

После игры в покер виндозе выдает сообщение:
- Вы проиграли 273 доллара. Вставьте их, пожалуйста, в дисковод А: и нажмите ANY KEY (если найдете).
Что в ентом случае делают...
Ламер: С остервенелым видом начинает засовывать 273 доллара в флоповод А: и искать ANY KEY.
Юзер: С жутко довольным видом давит ресет и бежит рассказывать друзьям о том, как он "взломал" покер.
Хакер: За соседним компутером быстренько пишет прогу, эмулирующую засовывание 273 баксов в дисковод А:. Потом, в течение 3-4 недель пишет фиксы и апдэйты для эмуляции запихивания 274, 293 и 765 баксов в дисководы
А:, В:, е.тм.
Новый русский: Со всей дури бьет кулаком по флоповоду А: и начинает усердно искать в флоповоде В: сдачу...

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

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

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

 

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

В избранное