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

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

Автор: SergeiNG
Дата сообщения: 20.09.2007 11:30
Люди помогите плиз
Не могу сконвертировать тип инт в тип байт в VB.NET
Использую для этого CByte пишет постоянно overflow arifmetic
Наведите на путь истинный плиз
Автор: ItsJustMe
Дата сообщения: 20.09.2007 16:35
b = i And &HFF
Автор: SergeiNG
Дата сообщения: 20.09.2007 16:52
ItsJustMe
Спасибо
Типа того додумался и сам, пару сдвигов на 8 бит а потом CByte работает корректно
Автор: BuzzL
Дата сообщения: 25.09.2007 19:53
Совсем простая весчь но загрузила
Нуно чтобы прога искала и выводила все трехбуквенные слова в предложении..
Автор: distance
Дата сообщения: 25.09.2007 23:14
BuzzL

Код: Sub test()
Dim rx As New Regexp
rx.Pattern = "(?:^|\s+)(\w{3})(?:\s+|$)"
rx.Global = True

Dim source As String
source = "Load this text box with an example of the text you wish to search."

Dim m As Match
For Each m In rx.Execute(source)
Debug.Print m.SubMatches.Item(0)
Next
End Sub
Автор: DLysenko
Дата сообщения: 26.09.2007 07:00
Господа, подскажите пожалуйста.
Получаю данные по Microsoft Internet Transfer Control в переменную. То есть в переменной a лежит голый html
мне нужно выдрать из html определенное слово, которое стоит после определенных символов и занимает определенное кол-во символов.
например:
html code.... A href="a=10d9f2534fee&"......html code
то есть я точно знаю что нужное выражение идет после а=
Вопрос - где можно посмотреть подобный исходник или как лучше провести поиск в переменной???
была мысль по split, но в массиве получатся левые данные, которые не нужны....
Автор: AndVGri
Дата сообщения: 26.09.2007 08:11
DLysenko
Вон же выше написано использование Regular Expressions
Найди вхождения href="a=, а затем с этих позиций + 7 найди положение " для каждого вхождения и Mid$, зная начало + 7 и конец
Автор: distance
Дата сообщения: 26.09.2007 15:47
DLysenko
собстна, предыдущий пример ты можешь практически без изменения передрать себе
если предположить, что тебе нужно вытащить из текста всю бодягу, которая после 'a=' и до '&',
тогда меняешь паттерн на такой:

Код: rx.Pattern = "a\s+href=\""a=([^\&]+)"
rx.IgnoreCase = True
Автор: BuzzL
Дата сообщения: 26.09.2007 17:21
distance
Эммм)) Спасибо
Автор: distance
Дата сообщения: 26.09.2007 17:36
BuzzL
в паттерн, кстати, вкралась небольшая ошибка - в текущем состоянии оно не определяет второе слово, если данное слово следует сразу же за первым, например так: "111 222"
надо использовать модификатор группы "Match suffix but exclude"
(?:^|\s+)(\w{3})(?=\s+|$)
Автор: DLysenko
Дата сообщения: 26.09.2007 17:48
AndVGri Большущее спасибо. Сильно помог. Даже с тем что в данном случае нужно использование Regular Expressions очень помогло.
Я просто сделал поиск по ([0-9a-f]{12}) - в данном случае находится именно этот код, состоящий из 12 символов.
В данном случае все отлично сработало.
Дальше применял другой поиск "IDZK=(./?)"""
Нашлись все нужные координаты.
Еще раз спасибо большое.
Теперь думаю как лучше запихнуть все в базу....
Автор: Dahrax
Дата сообщения: 30.09.2007 21:22
Доброго времени суток. Господа, помогите пожалуйста в написании проги. Незнаю как обращатся с Visual Studio 2005. Задача такова ... Нужно расчитать функцию по с х меняющимся от 1.2 до 3. Собстно здесь проблем никаких нет. Проблема в том, что надо составить график изменения этой функции (графически). Подскажите плиииз с кодом. Нужно оооочень срочно. Заранее спасибо !
Автор: maratino
Дата сообщения: 08.10.2007 20:54
Добрый день!
Подскажите пожалуйста
есть код

Private Sub TextBox1_Change()
If TextBox1.Text <> "" Then
Range("A2").AutoFilter Field:=1, Criteria1:="=" & TextBox1.Text & "*", Operator:=xlAnd
Else
Range("A2").AutoFilter Field:=1
End If
End Sub

Private Sub TextBox2_Change()
If TextBox2.Text <> "" Then
Range("B2").AutoFilter Field:=2, Criteria1:="=" & TextBox2.Text & "*", Operator:=xlAnd
Else
Range("B2").AutoFilter Field:=2
End If
End Sub

который работает только с текстом
как должен выглядеть код для работы с числами
Автор: dneprcomp
Дата сообщения: 08.10.2007 22:25
maratino
Это не VB, а VBA(VB for application). Вопрос для Excel VBA
PS. Разницы в работе быть не должно. Все зависит от того, что собираешься сделать.
Автор: maratino
Дата сообщения: 08.10.2007 22:53
нет, просто цифры отфильтровать, вот и все
Автор: dneprcomp
Дата сообщения: 09.10.2007 01:10
maratino
Можешь попробовать использовать функцию Value

Код: If Value(TextBox1.Text) = 8 Then
Автор: VovaMozg
Дата сообщения: 09.10.2007 16:00
Ребята помогите решить задачку. В общем есть 2 текстовых файла (большие куски из одного текста) один зашифрованый, другой незашифрованый. Нужно расшифровать зашифрованый файлик путём составления частот букв в файлах и замены.
Уже практически сделал, вот код

Цитата:
Const alf_length = 256
Const alf = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя "
Dim massiv_from_normal_file(alf_length, 3) 'Массив символов в незашифрованном файле
Dim massiv_from_shifr_file(alf_length, 4) 'Массив символов в зашифрованном файле
Dim Shape_Width
Const epsilon = 0.0015
Const epsilon_1 = 0.0051
Const my_round = 4
Private Sub Command1_Click()
'Сначала зададим нужные переменные
'Открываем зашифрованный файл на чтение
Set FSO = CreateObject("Scripting.FileSystemObject")
'Открываем незашифрованный файл на чтение
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.GetFile(Text2.Text)
Set TextStream = File.OpenAsTextStream(1)
k_normal = 1
While Not TextStream.AtEndOfStream
'Читаем файл построчно
temp_str = TextStream.ReadLine()
temp_str = LCase(temp_str)
For i = 1 To Len(temp_str)
If Mid$(temp_str, i, 1) = "ё" Then Mid$(temp_str, i, 1) = "е"
If Mid$(temp_str, i, 1) = "ь" Then Mid$(temp_str, i, 1) = "ъ"
ok = False
'перебираем все символы
For j = 1 To k_normal
If Mid$(temp_str, i, 1) = massiv_from_normal_file(j, 1) Then massiv_from_normal_file(j, 2) = massiv_from_normal_file(j, 2) + 1: ok = True
Next j
ok_1 = False
For j = 1 To Len(alf)
If Mid$(temp_str, i, 1) = Mid$(alf, j, 1) Then ok_1 = True
Next j
If (ok = False) And (ok_1 = True) Then massiv_from_normal_file(k_normal, 1) = Mid$(temp_str, i, 1): massiv_from_normal_file(k_normal, 2) = 1: k_normal = k_normal + 1
Next i
Wend
k_normal = k_normal - 1
TextStream.Close
'Всё массив создали
'Теперь отсортируем его
For i = 1 To k_normal - 1
temp_max = i
For j = i To k_normal
If massiv_from_normal_file(temp_max, 2) < massiv_from_normal_file(j, 2) Then temp_max = j
Next j
If temp_max > i Then temp = massiv_from_normal_file(i, 2): massiv_from_normal_file(i, 2) = massiv_from_normal_file(temp_max, 2): massiv_from_normal_file(temp_max, 2) = temp: temp = massiv_from_normal_file(i, 1): massiv_from_normal_file(i, 1) = massiv_from_normal_file(temp_max, 1): massiv_from_normal_file(temp_max, 1) = temp
Next i
'Посчитаем сколько всего русских символов
temp_simv_norm = 0
For i = 1 To k_normal
temp_simv_norm = temp_simv_norm + massiv_from_normal_file(i, 2)
Next i
'посчитаем частоту символов
For i = 1 To k_normal
massiv_from_normal_file(i, 2) = Round(massiv_from_normal_file(i, 2) / temp_simv_norm, my_round)
Next i

'отсортировали незашифрованный файл
'выведем то что получилось
Set File = FSO.GetFile(Text1.Text)
Set TextStream = File.OpenAsTextStream(1)
k_shifr = 1
While Not TextStream.AtEndOfStream
'Читаем файл построчно
temp_str = TextStream.ReadLine()
temp_str = LCase(temp_str)
'перебираем все символы
For i = 1 To Len(temp_str)
If Mid$(temp_str, i, 1) = "ё" Then Mid$(temp_str, i, 1) = "е"
If Mid$(temp_str, i, 1) = "ь" Then Mid$(temp_str, i, 1) = "ъ"
ok = False
For j = 1 To k_shifr
If Mid$(temp_str, i, 1) = massiv_from_shifr_file(j, 1) Then massiv_from_shifr_file(j, 2) = massiv_from_shifr_file(j, 2) + 1: ok = True:
Next j
ok_1 = False
For j = 1 To Len(alf)
If Mid$(temp_str, i, 1) = Mid$(alf, j, 1) Then ok_1 = True
Next j
If (ok = False) And (ok_1 = True) Then massiv_from_shifr_file(k_shifr, 1) = Mid$(temp_str, i, 1): massiv_from_shifr_file(k_shifr, 2) = 1: k_shifr = k_shifr + 1:
Next i
Wend
k_shifr = k_shifr - 1
TextStream.Close
'Теперь отсортируем массив по убыванию
For i = 1 To k_shifr - 1
temp_max = i
For j = i To k_shifr
If massiv_from_shifr_file(temp_max, 2) < massiv_from_shifr_file(j, 2) Then temp_max = j
Next j
If temp_max > i Then temp = massiv_from_shifr_file(i, 2): massiv_from_shifr_file(i, 2) = massiv_from_shifr_file(temp_max, 2): massiv_from_shifr_file(temp_max, 2) = temp: temp = massiv_from_shifr_file(i, 1): massiv_from_shifr_file(i, 1) = massiv_from_shifr_file(temp_max, 1): massiv_from_shifr_file(temp_max, 1) = temp
Next i
'Считаем сколько всего русских символов
temp_simv_shifr = 0
For i = 1 To k_shifr
temp_simv_shifr = temp_simv_shifr + massiv_from_shifr_file(i, 2)
Next i
'Сделаем частоту
For i = 1 To k_shifr
massiv_from_shifr_file(i, 2) = Round(massiv_from_shifr_file(i, 2) / temp_simv_shifr, my_round)
Next i
'проставляем позиции
'теперь в массив из шифрованного файла на 4-е место поставим позиции на которые будем заменять
For i = 1 To k_shifr
For j = 1 To k_normal
' If massiv_from_shifr_file(i, 3) = massiv_from_normal_file(j, 3) Then massiv_from_shifr_file(i, 4) = massiv_from_shifr_file(i, 4) + massiv_from_normal_file(j, 1) ': temp_ok = True
If Abs(massiv_from_shifr_file(i, 2) - massiv_from_normal_file(j, 2)) <= epsilon_1 Then massiv_from_shifr_file(i, 4) = massiv_from_shifr_file(i, 4) + massiv_from_normal_file(j, 1)
Next j
Next i
'если замена больше одной буквы, то берем её в скобки
For i = 1 To k_shifr
If Len(massiv_from_shifr_file(i, 4)) > 1 Then massiv_from_shifr_file(i, 4) = "(" + massiv_from_shifr_file(i, 4) + ")"
Next i
'Открываем зашифрованный файл на чтение
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File_1 = FSO.GetFile(Text1.Text)
Set File_2 = FSO.GetFile(Text3.Text)
Set TextStream_1 = File_1.OpenAsTextStream(1)
Set TextStream_2 = File_2.OpenAsTextStream(2)

While Not TextStream_1.AtEndOfStream
'Читаем файл построчно
temp_str_1 = TextStream_1.ReadLine()
temp_str_2 = ""
For i = 1 To Len(temp_str_1)
ok = False
For j = 1 To k_shifr
If Mid$(temp_str_1, i, 1) = massiv_from_shifr_file(j, 1) Then temp_str_2 = temp_str_2 + massiv_from_shifr_file(j, 4): ok = True
Next j
If ok = False Then temp_str_2 = temp_str_2 + Mid$(temp_str_1, i, 1)
Next i
TextStream_2.writeline (temp_str_2)
Wend
TextStream_1.Close
TextStream_2.Close
MsgBox "Готово"
End Sub



зашифрованный и незашифрованный файлик находятся тут:
http://slil.ru/24956562
Нужно лишь додлеть программу, чтобы получался нормально расшифрованный файл
Автор: maratino
Дата сообщения: 09.10.2007 21:43
dneprcomp

спасибо
сейчас попробую

Добавлено:
dneprcomp
что то ошибку выдает
если не трудно, можно полностью код
Автор: dneprcomp
Дата сообщения: 10.10.2007 02:04
maratino
Если не трудно, можно полностью ошибку и свой код? А еще лучше, свой xls файл. Я ведь понятия не имею что там делается и что должно происходить.
Автор: maratino
Дата сообщения: 10.10.2007 18:52
dneprcomp
Тот код который я выставил, работает таким образом
В ячейке А2 есть TextBox к которому привязан мною выставленный код
А дальше в низ по столбцу, наименование товаров

А

2 Арбуз
3 Виноград
4 Арахис
5 Вишня
6 Абрикос
7 Тыква
8 Алича

Когда в TextBox-e я набираю букву А, то все, что начинается с буквы "А" фильтруются, если продолжаю ввод и ввожу Р, то все те слова которые начинаются "Ар" фильтруются и выводятся
2 Арбуз
4 Арахис
Теперь, я хочу, чтобы он, или другой код, таким же образом работал с числамми
Автор: dneprcomp
Дата сообщения: 10.10.2007 19:54
maratino
Все должно работать точно так же. Цифры для компьютера такие же знаки, как и буквы.
Откуда поступают данные в столбец? Если с базы, то может поля с цифрами не в стринговом формате и, соответственно, запрос строится не верно. В общем, без первоисточника ничего сказать не могу. Аплодай програму на rapidshare. Тогда может найду что-нибудь.
Автор: maratino
Дата сообщения: 11.10.2007 11:19
dneprcomp
если можно, оставьте свой эмайл, я вам на почту вышлю
Автор: dneprcomp
Дата сообщения: 11.10.2007 20:14
maratino
Лучше на любой файлообменник. http://rapidshare.com/
Автор: maratino
Дата сообщения: 12.10.2007 01:20

dneprcomp
извини, я не имею даже понятие речь очем
Извини, что отнимал у тебя столько времени
я сам как нибудь разберусь
Автор: dneprcomp
Дата сообщения: 12.10.2007 02:50
maratino
Если несколько файлов, то сделай архив.
Просто зайди по ссылке http://rapidshare.com/
Затем нажми кнопку Browse. Найди свой архив/файл и аплодай на сайт-файлообменник. После окончания аплоада получишь ссылку. Помести ее сюда и я смогу скачать. Принимать по е-мейлу файл неизвестной величины это не самое лучшее занятие.
Автор: maratino
Дата сообщения: 12.10.2007 19:51
я отправил
но там наверное регистрация нужна, что ли
dneprcomp
Все спасибо, я разобрался, все в порядке. Спасибо за внимание
Удачи


Добавлено:
ZORRO2005 Здравствуйте!
Вы неможоте мне подсказать код textbox который и числа умеет фильтровать
тот, который вы меня подсказали с текстом работает, а с цифрами никак

вот код, который текст признает а цифры нет

Private Sub TextBox1_Change()
If TextBox1.Text <> "" Then
Range("A2").AutoFilter Field:=1, Criteria1:="=" & TextBox1.Text & "*", Operator:=xlAnd
Else
Range("A2").AutoFilter Field:=1
End If
End Sub

Private Sub TextBox2_Change()
If TextBox2.Text <> "" Then
Range("B2").AutoFilter Field:=2, Criteria1:="=" & TextBox2.Text & "*", Operator:=xlAnd
Else
Range("B2").AutoFilter Field:=2
End If
End Sub
Автор: Bersa
Дата сообщения: 15.10.2007 22:53
Мужики, подскажите пожалуйста, как сделать чтобы при использовании DataGridView можно было выбрав определенную строку открыть вложенную форму с детальными данными, относящимися к этой строке? Например: имеется база данных по заказам, необходимо выбрав в таблице строку с заказом, открыть данные по этому заказу. Используется Visual Basic 2005.
Автор: artemds
Дата сообщения: 17.10.2007 13:34
Bersa
Сделай связанный Dataset, включи в него связанные таблицы, содерживое будет автоматически меняться на основании выбранной позиции в родительской таблице... как в MS Access
Автор: phper
Дата сообщения: 17.10.2007 23:58
Надо переводить на секунду назад, каждую секунду, часы Windows'а(XP).
То есть, что бы когда программа была запущена, часы вообще не шли.

Вопрос: Как вообще управлять этими самыми часами Windows'а?
Автор: AndronH
Дата сообщения: 18.10.2007 09:03
Date = "10.10.2008"
Time = "10:10"
Остальную работу с таймером додумай сам

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940

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


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