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

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

Автор: Legio
Дата сообщения: 15.09.2011 19:01
alin
Не совсем понял, чего вам надо. Можете привести в качестве примера немного исходных данных и результат, который требуется получить?
Автор: alin
Дата сообщения: 15.09.2011 19:31
Legio
В папке файлы отсортированы по имени:
123.jpg
124.jpg
125.jpg
131.jpg
132.jpg
......jpg
Есть текстовый файл (или файл в формате .csv, одно в другое легко перевести) в котором в столбец написаны названия изображений:
На море
На даче
Мы с детьми
и т.д.

Количество файлов и имён, а так же порядок названий соблюдены в текстовом файле
Задача переименовать файлы согласно списка.
123.jpg -> На море.jpg
124.jpg -> На даче.jpg
125.jpg -> Мы с детьми.jpg
Автор: asbo
Дата сообщения: 15.09.2011 20:34
alin
Ответил здесь
Автор: alin
Дата сообщения: 15.09.2011 20:50
asbo
Спасибо!
Отблагодарил там же
Автор: Legio
Дата сообщения: 15.09.2011 21:04
[more=Я тут на коленке набросал немножко кода.]
Код: Dim s() As String, idx As Long
' как-нибудь считываем данные из текстового файла
ReDim s(1 To 5) ' заглушка
s(1) = "s1"
s(2) = "s2"
s(3) = "s3"
s(4) = "s4"
s(5) = "s5"

Dim fso As FileSystemObject: Set fso = New FileSystemObject
Dim fd As Folder: Set fd = fso.GetFolder("C:\Temp\_test_dir")

If Not fso.FolderExists(fd.Path & "\_\") Then fso.CreateFolder fd.Path & "\_\"

idx = 1
Dim f As File
For Each f In fd.Files
If idx > UBound(s) Then Exit For
fso.CopyFile f.Path, fd.Path & "\_\" & s(idx) & "." & fso.GetExtensionName(f.Path)
idx = idx + 1
Next
Автор: alin
Дата сообщения: 15.09.2011 21:15
Legio
Огромное спасибо!
С удовольствием протестирую, пожалуйста, поясни как использовать твой скрипт?
Автор: Legio
Дата сообщения: 15.09.2011 21:30
Открываешь Visual Basic Editor в, например, Excel'е (Alt+F11); создаёшь новый модуль (Insert > Module) или открываешь уже существующий; в модуле создаёшь новую процедуру и в неё вставляешь этот код:

Код: Private Sub TestSub()

' код вставить куда-нибудь сюда

End Sub
Автор: banaji
Дата сообщения: 21.09.2011 00:23
Токой вопрос. Есть txt список со ссылками типа

Цитата:
http://www.google.by/
http://ya.ru/
http://www.xxx.com/

Какой написать vbs, чтоб он открыл в Opere-e все ссылки из этого txt файла.
Файл txt будет меняться.
Автор: rrromano
Дата сообщения: 21.09.2011 11:41
banaji
Может, лучше для этого Excel использовать?
И ссылки там, и код )))

Sub LeggiDatiID()
On Error GoTo lbl_Error

Dim objIE As InternetExplorer
Dim sh1 As Worksheet

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True

With objIE
'open first url
.Navigate "www.google.it"
'wait until page is completely downloaded
Do While .Busy: DoEvents: Loop
Do While .readystate <> 4: DoEvents: Loop

'wait 3 seconds
Application.Wait (Now + TimeValue("0:00:03"))

'open second url
.Navigate "www.libero.it"
'wait until page is completely downloaded
Do While .Busy: DoEvents: Loop
Do While .readystate <> 4: DoEvents: Loop
End With

lbl_Exit:
'objIE.Quit
Set objIE = Nothing
Exit Sub

lbl_Error:
MsgBox "Error occurred: " & Err.Description, vbOKOnly
Resume lbl_Exit
End Sub

Вот это можно попробовать под оперу адаптировать, да цикл по строкам со ссылками организовать ).

Добавлено:
ActiveSheet.Range("B1").Hyperlinks(1).Follow - так запускать ссылку из Excel
Автор: Legio
Дата сообщения: 21.09.2011 16:50
banaji
Читаете ссылки из файла в одну текстовую строку, разделяя адреса пробелами (а-ля "<адрес1> <адрес2>"), а затем в функцию Shell скармливаете в первый параметр путь оперы и через пробел эту строку:

Код: Dim allAddresses As String, operaPath As String
operaPath = "<полный путь к opera.exe>"
'в этом месте читаем адреса из файла (например через FileSystemObject)
allAddresses = "<адрес1> <адрес2>" ' заглушка
Shell operaPath & " " & allAddresses
Автор: rrromano
Дата сообщения: 21.09.2011 17:07

Цитата:
Как вызвать Shell из vbs не помню, погуглите сами.


set sh=WScript.CreateObject("Wscript.Shell")
sh.run "rar.exe"

или

command_line = WshProcEnv("COMSPEC") & " /c " & path_pkzip & " -add -path=full " & archiv_log & ".zip " & archiv_log
return = WshShell.Run (command_line, 1, True)
Автор: DLysenko
Дата сообщения: 27.10.2011 17:47
Приветствую.
Требуется помощь.
Пишу софт на VB 2010
Необходимо проверять авторизирован ли пользователь в домене, если да, запоминать его логин в переменную a.
Далее требуется информация из поля Description того же пользователя. Её нужно записывать в переменную b.

пересмотрел много примеров, но не совсем могу понять как это сделать.
Подскажите пожалуйста как это можно реализовать.
Автор: reliab
Дата сообщения: 30.10.2011 19:17
Вопрос: В проекте на Visual Basic 6.0 пытаюсь использовать TextBox из состава Microsoft Forms 2.0 Object Library, который поддерживает уникод. Мне необходимо в форме отобразить немецкий текст из базы Аксесс, при том, что вторым языком винды является русский. Цели я вроде достигаю - все отображается нормально. Однако имеет место какое-то глючное поведение TextBox при редактировании. В частности - при щелчке мышью курсор оказывается на случайном месте. Также не происходит обновление картинки TextBox при нажатии Enter - если курсор находится в начале строки, то строка пропадает из виду и появляется (вместе с новой строкой) только после дополнительных действий по обновлению картинки. Может кто сталкивался с подобным? То-ли это глюк контрола, то-ли так и должно быть, то-ли я виноват?
Автор: Stanislav canep
Дата сообщения: 03.11.2011 13:26
Пытаюсь решить задачу, но что то ни как не выходит.
Подскажите как организовать поиск из формы По 3 столбцам, по трём критериям из формы либо только по одному из трёх, чтоб результат либо в Листе Excel, в этой форме. Хочу организовать сортировку по радиодеталям, а также для быстрого поиска необходимых элементов.
Автор: grbdv
Дата сообщения: 03.11.2011 13:48
Stanislav canep
Этот вопрос не в VB, а, скорее, в VBA, если чисто по коду заморочки. Если "в этой форме" - то в Access, ну а если "в Листе Excel" - в Excel. А если до кода еще не дошло, то там же в шапках ссылки на соответствующие темы собственно по продуктам.
Автор: zerkalo77
Дата сообщения: 23.11.2011 11:06
Приветствую всех форумчан.
Возникла острая необходимость написать программку дикторозависимого распознавания речи. Скорее всего принцип голосового набора в мобильных телефонах. Нужно распознать 5 команд: вверх, вниз, влево, вправо, стоп.
На всех нагугляндексеных ресурсах переливают из пустого в порожнее.
Из реально рабочего нашёл только эту ссылку : http://sz.ru/speech-recognition/
Правда в ней дикторонезависимое распознавание (что очень круто, как я понимаю, и мне не нужно). Плюс к этому исходников, естественно, нет.

Мне нужна помощь в алгоритме действий. Что и в какой последовательности делать.
Буду признателен за любую помощь.

Автор: terminat0r
Дата сообщения: 23.11.2011 11:30
zerkalo77
ну можно начать отсюда
http://frolov-lib.ru/books/hi/index.html

алгоритмы и сорцы здесь
http://en.wikipedia.org/wiki/Speech_recognition#Algorithms
http://en.wikipedia.org/wiki/List_of_speech_recognition_software#Open_Source

Но учтите, что на даном этапе развития распознавания речи все это стало очень сложным.

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

Автор: murkovich
Дата сообщения: 23.11.2011 11:43
zerkalo77

Цитата:
Возникла острая необходимость написать программку дикторозависимого распознавания речи.

Что здесь понимается под "дикторозависимым распознаванием"? То, что распознается и то, ЧТО сказано, и то, КТО это сказал? То есть, результаты в форме "Миша, вверх", "Саша, стоп"?

Не думаю, что отказ от дикторонезависимости тут сильно упрощает задачу, если мы именно о распознавании говорим.

Но, как я понимаю, тут просто 5 команд и Х командиров, и нучно по самплу определить, который из 5*Х предварительно записанных образцов ближе?

Автор: zerkalo77
Дата сообщения: 23.11.2011 23:53
Под дикторозависимым понимается то, что программа умеет "распознавать" только одного (единственного) диктора, шаблоны (эталоны) команд которого имеются "в запасе" у программы.

Так что просто 5 команд и 1 командир и нужно НА ЛЕТУ определить, который из 5*1 предварительно записанных образцов ближе...

Всего-то навсего.
Первая трудность возникла на этапе: Найти рабочий код на VB.NET для записи с микрофона в массив данных. Есть куча кодов на VB.
Но вот дальше я ничерта не понимаю. Что хранится в этом массиве? Значения амплитуд? Или частот?
"Рассмотрев" массив увидел, что значения в нём от -30000 до +30000 (в зависимости от качества wave файла). Значит не частота. Скорее всего амплитуда сигнала в есдиницу времени (Гц).
Мыслю верно?



Автор: murkovich
Дата сообщения: 24.11.2011 00:34
zerkalo77
Скорее всего, это нормальная, несжатая инфа в форме, где, скажем, 44100 раза в секунду измерено значение амплитуды с разрешением 16бит на канал.
Автор: zerkalo77
Дата сообщения: 24.11.2011 10:24
murkovich
И всё же смею предположить, что в массиве хранятся значения амплитуд, ибо:



Верхний график получен с помощью программы All free mp3 cutter.
Нижний получен следующим кодом:

Код:
for i = 1 to BufferSize
Picture1.line - (i, buffer(i))
next i
Автор: murkovich
Дата сообщения: 24.11.2011 10:47
zerkalo77

Цитата:
И всё же смею предположить, что ...

Разве Ваш и мой вариант - не одно и то же?
Автор: zerkalo77
Дата сообщения: 24.11.2011 10:51
murkovich
точно . С первого раза не просёк смысла.

Ввело в заблуждение:

Цитата:
Скорее всего, это нормальная, несжатая инфа в форме,

Автор: yse
Дата сообщения: 02.12.2011 10:20
вопрос по данному скрипту

данный скрипт должен отправить письмо с вложением файла

все работает но прикрепленный файл не приходит прошу подсказки
objEmail.AddAttachment = "test.txt"
сам скрипт

on error resume next
Const EmailFrom = "test@mail.ru"
Const EmailPassword = "123456"
Const strSmtpServer = "smtp.mail.ru" ' это почтовый сервер mail.ru
Const EmailTo = "test@mail.ru"
Set objEmail = CreateObject("CDO.Message")

objEmail.AddAttachment = "test.txt"
objEmail.From = EmailFrom
objEmail.To = EmailTo
objEmail.Subject = "Здесь текст заголовка"
objEmail.Textbody = "Текста Вашего письма"
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = EmailFrom
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = EmailPassword
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSmtpServer
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update

objEmail.Send
Автор: Legio
Дата сообщения: 02.12.2011 14:30
Полный путь к файлу не пробовали указывать?
Автор: yse
Дата сообщения: 02.12.2011 21:35
спасибо Legio помогло

Добавлено:
еще вопрос пытаюсь скопировать папку опера в папку help почему то не копирует
ос виста


set fso=createobject("sсriрting.filesystemobject")
set WshShell = WScript.CreateObject("WScript.Shell")
fso.copyfolder WshShell.ExpandEnvironmentStrings(" C:\Users\%Username%\AppData\Roaming\Opera\Opera"),"C:\Users\admin\Desktop\page\help" ,0
Автор: Legio
Дата сообщения: 03.12.2011 08:59
Попробуйте убрать "WScript." и пробел из начала первого пути:

Код: set fso=createobject("sсriрting.filesystemobject")
set WshShell = CreateObject("WScript.Shell")
fso.copyfolder WshShell.ExpandEnvironmentStrings("C:\Users\%Username%\AppData\Roaming\Opera\Opera"),"C:\Users\admin\Desktop\page\Hello" ,0
Автор: yse
Дата сообщения: 03.12.2011 13:27

пробел из начала первого пути это где ?

не выходит синтаксис еррор

вот еще пытаюсь создать новую папку скрипт запускается и не выдает ошибок ,а папка не создается даже прописывая полный путь
On Error Resume Next
Set FSO = CreateObject("sсriрting.FileSystemObject")

FSO.CreateFolder="C:\newfolderpath"
Автор: Legio
Дата сообщения: 03.12.2011 19:04

Цитата:
пробел из начала первого пути это где ?

Это там, где вы переменную среды %username% разворачиваете в имя текущего пользователя.


Цитата:
не выходит синтаксис еррор

Ну, кхм, да. Я не ожидал, что в слове "scripting" окажутся русские "с" и "р". Наберите его руками, и всё должно заработать.
Автор: yse
Дата сообщения: 04.12.2011 23:49
спасибо Legio

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940

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


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