Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Задачи на Visual Basic (VB).

Автор: Sorok
Дата сообщения: 06.04.2008 18:57
Люди добрые, помогите. У самого мозга мало.
В комбе перечень имен.
Нужно, чтобы при написании имени в окошке ввода имени, в окошке сортировки появлялись имена начинающиеся с этой буквы.
Когда пишешь следующую букву, остаются имена уже начинающиеся с двух букв.
Пишешь третью - остаются имена начинающиеся на эти три буквы.

Отсортировать по первой букве я сделал, а вот чтобы шла сортировка дальше никак.



Option Explicit
Dim I, J As Integer
Dim Letter As String


Private Sub Form_Load()

'загружаем в Combo1 213 имён из файла
Open App.Path & "\name.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, Letter
Combo1.AddItem Letter
Loop
Close
Combo1.AddItem ""
Combo1.Text = ""
End Sub
' В Letter хранятся загруженные из файла имена

Private Sub Text1_Change()
Dim ksp As Integer
Dim p As Integer
Dim kbt As Integer
Dim kbp As Integer

'кол-во всех стровек в Combo1
'kbt = Combo1.ListCount
p = 0 'Номер текущей строки
'К-во введенных в Text1 букв
ksp = Len(Text1.Text)
'Вводими первую букву в окно Text1 и сравниваем с 1-й буквой
'1-й строки из Combo1. Если буквы совпадают печатаем
'строку в List1. Если первые буквы не совпадают, переходим
'к следующей строке.
'Когда все первые буквы выбраны, выбираем из окна Text1
'первую строчку и сравниваем уже две буквы. При совпадении
'результат заносим в List1
For kbt = Combo1.ListCount To 1 Step -1
If LCase(Left(Combo1.List(p), ksp)) = LCase(Text1.Text) Then
List1.AddItem Combo1.List(p)
kbt = kbt - 1
p = p + 1
Else

End If
Next

End Sub



После ввода третьей буквы


Автор: dneprcomp
Дата сообщения: 06.04.2008 21:33
Sorok
Алгоритм надо немного поменять. Проверять не на каждую букву по очереди, а сразу на сочетание. Даже если одна буква, рассматриваем это как сочетание. Для сравнения используем функцию InStr. Тогда нам будет безразлично сколько символов в Text1. Лишь бы InStr вернул 1. И не забываем чистить окно сортировки перед кажой проверкой.
Автор: mikeryrg
Дата сообщения: 07.04.2008 00:35
есть прога на вб для работы с которой требуется файл MSINET.OSX и лежать он должен только в system32 (вроде там), вобщем в системной папке

можно ли как-нибудь указать в программе путь к этому файлу, например что бы прога брала файл из той же папки где сама находится
еще лучше если этот а так же все остальные вспомогательные файлы можно было вшить в экзешник

помогите плз, очень надо
Автор: dneprcomp
Дата сообщения: 07.04.2008 03:11
mikeryrg
А что мешает этому файлу лежать в system32?
В любом случае, не смотря на месторасположение все OCX файлы должны быть зарегистрированы в системе. Регистрация проводится автоматически при инсталяции. Так что надо делать инсталят, а не искать обходные пути по запихиванию всякого мусора в ехешник.
PS. Файл можно зарегистрировать вручную с помощью regsvr32.exe
Автор: mikeryrg
Дата сообщения: 07.04.2008 08:14
dneprcomp
просто не на всех компах есть этот файл
Автор: kpblc
Дата сообщения: 07.04.2008 08:29
Да какая разница? Если он есть на компе разработчика и включен в дистрибутив (и, следовательно, зарегистрирован в систем), то он появится и будет нормально функционировать на любом компьютере, где установлена твоя программа.
Автор: mikeryrg
Дата сообщения: 07.04.2008 11:08
Скажите тогда как остальные служебные файлы запихать в экзешник или дайте ссылку на ман какой-нибудь
Автор: dneprcomp
Дата сообщения: 07.04.2008 19:45
mikeryrg

Цитата:
Скажите тогда как остальные служебные файлы запихать в экзешник
Что есть служебные файлы?
Делай инсталляционный пакет в самом VB. Он подхватит все(в основном) используемые файлы и затем, при инсталле на других машинах, все расставит по местам и зарегистрирует как надо. Ищи в хелпе: дистрибутив или "package and deployment"
Автор: NotDead
Дата сообщения: 07.04.2008 22:26
никто не подскажет как создать матрицу A(NxN) целых чисел, где вводится по запросу программы. С помощью подпрограмм:
среди столбцов заданной матрицы, содержащей только такие элементы, которые строго больше соответствующих элементов последнего столбца, найти номер столбца с минимальным произведение элементов;
переставить строку с максимальным элементом на главной диагонали исходной матрицы с первой строкой;
упорядочить столбцы матрицы по возрастанию сумм их элементов.
исходную матрицу и результаты записать в файл в основной программе.Информацию из файла выводить на экран с пояснениями.
на ш препод намудрил что ппц в заданиях + к тому же объясняет непонятно, кто поможет огромное спасибо
Автор: mikeryrg
Дата сообщения: 18.04.2008 12:06
открываю странички такой функцией Inet1.OpenURL(url, icString)
но почему-то они не всегда загружаюися полностью
в чем мб проблема?
может есть другой способ?
Автор: Asssoll
Дата сообщения: 02.05.2008 09:51
Люди,помогите пожалуйста написать одну программку,сроки уже поджимают:
Нужно создать интерфейс "Shape"(фигура),содержащий методы "площадь","объем","имя".
На его основе создать следующие классы:
"Точка"-"Прямоугольник"-"Параллелепипед",
где класс "Параллелепипед" наследует от класса "Прямоугольник", который в свою очередь наследует от класса "Точка"
(Объемом и площадью точки считать "0"),затем отдельно написать код для проверки работы программы:т.е. создать отдельно внутри Sub Main-End Sub экземпляры каждого из классов и вызвать для них соответствующие методы.
Все переменные во всех классах должны объявляться с модификатором Private, соответственно доступ к их свойствам осуществляется через процедуры свойств Get и Set.
Приложение представляет собой WindowsApplication, реультаты выводятся в виде сообщения.
Заранее огромное спасибо
Автор: mikeryrg
Дата сообщения: 03.05.2008 21:48
загружаю данные с помощью такой функции Inet1.OpenURL()
можно ли узнать размер загружаемого файла используя компонент Inet или какой-то другой до открытия документа?
Автор: PushkinRZN
Дата сообщения: 04.06.2008 23:09
помогите решить задачку VB

....Ввести с клавиатуры строку. Сформировать новую строку, содержащую слова из исходной строки, которые сформированы следующим образом: буквы слова, стоящие до первой цифры отделить от цифры пробелом, а после всего слова поставить запятую и пробел. В качестве разделителей между словами исходного текста используются символы пробела, запятой и точки.
Пример:
исходная строка – стр1 стр2 стр3
в результате – стр.1, стр.2, стр.3
Автор: FanatF1
Дата сообщения: 08.06.2008 23:12
Помогите пожалуйста решить одну задачку. Она простая, но я сам ничего не смыслю в VB. Нужно создать две кнопки. Первая для ввода 10-ти чисел, вторая для вычисления среднего арифметического положительных чисел.
Буду очень благодарен.
Автор: LenaSpiriDOnova
Дата сообщения: 18.06.2008 00:12
Людишки..Добрые..Помогите с задачками по ВБА!а то завтра екзамен!Поможете?
Автор: dneprcomp
Дата сообщения: 18.06.2008 02:28
Кто-нибудь работал с контролом dsoframer? Каким образом обращаться к меню и сабменю помимо меню file? В частности, интересует как менять enabled properti для сабменю envelopes и labeles
PS. dsoframer позволяет открывать и работать с офисными файлами. Практически встраивает офисные приложения в пpограмму.
Автор: Mew
Дата сообщения: 25.06.2008 09:48
Добрый день!
Научите пожалуйста каким образом в Microsoft Outlook можно автоматизировать процесс сохранения сообщений на диске в формате сообщений Outlook (*.msg)? То есть вместо того чтобы лезть в меню, потом выбрать там "Сохранить как", поменять формат сообщения, изменить путь, нажать "Сохранить" мы просто на сообщении жмем какую-нибудь комбинацию клавиш и всё готово... Может кто макрос может написать? К сожалению я в Visual Basic не сильна... Благодарю!
Автор: SergBSI
Дата сообщения: 25.06.2008 18:56
есть ли возможность отключить выполнение autoexec в книге не запрещая выполнение другиз макрососв
Автор: wild89
Дата сообщения: 28.06.2008 22:13
помогите плиз с задачкой)

из текстового файла считываем строчку чисел. Выводим в другой файл эти числа, отсортированные по возрастанию по 3 числа в строчку.


заранее БЛАГОДАРЕН!!!)))
Автор: Aseed
Дата сообщения: 30.06.2008 06:37
FanatF1

Цитата:
Помогите пожалуйста решить одну задачку. Она простая, но я сам ничего не смыслю в VB. Нужно создать две кнопки. Первая для ввода 10-ти чисел, вторая для вычисления среднего арифметического положительных чисел.
Буду очень благодарен.

Dim X(10) As Double
Dim s As Double
Dim k, i As Integer
Dim otvet As Variant
Option Explicit

Public Sub Command1_Click()
For i = 1 To 10
X(i) = InputBox("X")
Next i
End Sub

Public Sub Command2_Click()
s = 0
k = 0
For i = 1 To 10
If X(i) > 0 Then
s = s + X(i)
k = k + 1
Else
End If
Next i
s = s / k
otvet = MsgBox("Результат" & Chr(10) & Chr(13) & s)
End Sub
Прим.
Вместо длительного msgbox можно воспользоваться коммандой Print, но ответ тогда печатается на форме.
Автор: Bosper
Дата сообщения: 09.07.2008 14:12
Народ помагите, я ещё плохо знаю программироваие, только учусь на программиста, не подскажите пару задач на Qbasic тоже начил с нуля, мне трудновато.
Автор: vtronza
Дата сообщения: 10.07.2008 14:03
На тестовой машине подключался к LDAP серверу при помощи VBS и получал все что мне необходима. Теперь задача усложнилась, для подключения к LDAP серверу нужно задать имя пользователя и пасворд т.е. на запросы anonymous он больше не отвечает.
Как в VBS задать параметр authenticated query?

Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

'WScript.Echo "Executing LDAP query.."
objCommand.CommandText = "SELECT * FROM 'LDAP://server' WHERE objectClass='dominoPerson' AND uid='user1'"
Set objRecordSet = objCommand.Execute
WScript.Echo objCommand.CommandText
'WScript.Echo "Query complete. Found "
' & objRecordSet.RecordCount & " objects."

objRecordSet.MoveFirst
Do Until objRecordSet.EOF
Set objUser = GetObject(objRecordSet.Fields("ADsPath").Value)
WScript.Echo objUser.mailserver
WScript.Echo objUser.mailfile
WScript.Echo objUser.mail
objRecordSet.MoveNext
Loop
Автор: FriendSergey
Дата сообщения: 11.07.2008 12:20
дравствуйте, коллеги.
Изначальная задача. которая реализовалась - создание БД из N-го кол-ва однотипных файлов Excel (>1000). Модуль написан и работает. Трудность заключается в том, что выгружает данные он с 1го листа в книге, а необходимо загружать с листа с определенным названием, а лист этот не всегда присутствует в книге.
Прошу подсказать как дополнить модуль функцией проверки наличия в книге листа с заданным именем и вставить в тело программы комманду о соответствующей проверке и выгрузке данных, если лист есть.
За основу можно взять лист c названием "Заемщик".

С программированием знаком, но с VBA не сталкивался, а во времени ограничен.
Буду благодарен за понимание и Ваше время.

Прикрепить исходные файлы не смог, выкладываю код:

Sub ReadFiles_()
Dim fs As Object, xl As Object, v_Path As String, i As Long
'
Range("a4:p" & Rows.Count).ClearContents
Range("a4:p4") = Array("Имя файла из папки", "Данные ячейки 2", "Данные ячейки 3")
v_Path = Range("a3") ' Путь к папке с файлами Excel
Set fs = Application.FileSearch
Set xl = CreateObject("Excel.application")
fs.LookIn = v_Path
fs.Filename = "*.xls" ' тип файлов
If fs.Execute > 0 Then
For i = 1 To fs.FoundFiles.Count
xl.DisplayAlerts = False
xl.Workbooks.Open fs.FoundFiles(i)
With xl.Sheets(1)
Range(Cells(i + 4, 2), Cells(i + 4, 16)) = _
Array(.Range("a1"), .Range("g6"), .Range("g7"))
Cells(i + 4, 1) = fs.FoundFiles(i)
End With
xl.Workbooks(1).Close
Next i
xl.Quit
End If
Set fs = Nothing
Set xl = Nothing
End Sub
Автор: Legio
Дата сообщения: 11.07.2008 18:26
Чего вы у него спросили -- то и выдал:

Код: With xl.Sheets(1)
Автор: alin
Дата сообщения: 11.07.2008 20:37
Troitsky, Yuk и The okk.
Больше года назад помогли написать этот код, сильно благодарен им за это, т.к он всё это время работал без перебоев!

Код: strDate = Day(Now()) & "." & Month(Now())
intHour = Hour(Now()) + 1

Set objExcel = CreateObject("Excel.Application")

objExcel.Workbooks.Open "test.xls"
With objExcel.ActiveWorkbook
If .Sheets(1).Name <> strDate Then ' создаем лист если его не существует
.ActiveSheet.Copy .Sheets(1)
.Sheets(1).Name = strDate
' перенос данных с 24:00 на 0:00
.Sheets(1).Range("E3:E25").Value = .Sheets(1).Range("AD3:AD25").Value
.Sheets(1).Range("E27:E31").Value = .Sheets(1).Range("AD27:AD31").Value
' очистка области
.Sheets(1).Range("F3:AD25", "F27:AD31").ClearContents
End If

With objExcel.ActiveWorkbook.Sheets(1)
' в зависимости от часа заполняем нужные области
.Range(.Cells(3, 6 + intHour), .Cells(18, 6 + intHour)).Value _
= .Range("AE3:AE18").Value
.Range(.Cells(22, 6 + intHour), .Cells(25, 6 + intHour)).Value _
= .Range("AE22:AE25").Value
.Range(.Cells(27, 6 + intHour), .Cells(31, 6 + intHour)).Value _
= .Range("AE27:AE31").Value
End With

.Close True
End With

Set objExcel = Nothing
Автор: yava52
Дата сообщения: 15.07.2008 08:43
Здравствуйте ребята.
Подскажите пожалуйста, можно ли сделать авторан для запуска игры средствами VB.
Меня интересует диалоговое окно с круглыми краями, активация кнопок, если игра установленна или не установленна, вставка анимационных gif'ов. Заранее спасибо.
Автор: nick_27
Дата сообщения: 28.07.2008 18:57
Private Sub Command1_Click()
wins.RemoteHost = "81.177.13.7"
wins.RemotePort = 6900
wins.LocalPort = 3434
wins.Connect
If wins.State = sckConnected Then
Label1.Caption = "Connected"
Else
Label1.Caption = "Error"
End If


Данный код ВСЕГДА возвращает Error.Порт на удаленном хосте открыт.Но хост не поддрерживает пакеты типа ping...на сервере закрыт этот вид трафика.

Заранее спасибо
Автор: delover
Дата сообщения: 07.08.2008 14:10
Может кто подскажет, как-то скачал один скриптик, помоему кто-то с борды писал из старых знакомых. Скриптик сохранял картиночки с офисных кнопок. Но у меня закралось сомнение, что версия для xp офиса, это последняя версия скрипта. Мне бы урл на свежую, или может скриптик принести? Мне думается что в виста офисе картинки на батончиках не 16х16. Я пробовал поправить, но так как не знаю бмп формата, то получилось кривенько. Какие будут предложеня?
Автор: apexfmm
Дата сообщения: 08.08.2008 05:10
delover
Не парся, интерфейс под висту заточен под VisualStudio.NET
Автор: delover
Дата сообщения: 08.08.2008 09:38
apexfmm
И что это значит? Паскаль с дотнетом, с ним я вполне лажу, а VS у меня только неро имидж. Ещё не ставил ни разу.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940

Предыдущая тема: для Hiper-six (индексы .nsx .smt) хоть что нибудь Опции


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.