Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23

Найти строку и вывести ее

15.11.2021, 17:25. Показов 9198. Ответов 44

Студворк — интернет-сервис помощи студентам
Здравствуйте! Возникла задача: необходимо создать vbs, который бы считывал файл, находил там строку (например "Hello world") и выводил ее(строку) полностью.

То есть, если у нас есть текстовый файл с содержанием:
Привет, мир! Как дела?
Hello world! How are you?
То после запуска скрипта должно выдать
Hello world! How are you?
Помогите, пожалуйста, если кто сможет
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.11.2021, 17:25
Ответы с готовыми решениями:

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

Найти самую короткую строку, вывести эту строку и ее длину
Всем привет! помогите пожалуйста решить несколько задач 1 . Ввести n строк с консоли , найти самую короткую строку. Вывести эту строку...

Найти строку и вывести следующую строку в массив
Нужно найти определенное слово в файле и в след строке вывести в массив числа под ним Например: яблоко 12 равылф 324 123 12 34 73...

44
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
18.11.2021, 08:38  [ТС]
Студворк — интернет-сервис помощи студентам
Доброго дня Вам, FlasherX!
Попробовал. Теперь выдает:
"Требуется объект: WSH".
0
6999 / 2884 / 1109
Регистрация: 06.06.2017
Сообщений: 9,802
18.11.2021, 13:13
Значит, интерпретатор BGInfo не поддерживает этот объект. Тогда придётся писать, как я в начале и предложил, полное имя.
При выводе рабочей папки он показывает C:\7zSFX, хотя такой папки после вывода уже не существует. Т. е. программно зацепить путь расположения скрипта или папки BGInfo не представляется возможным (пробовал 3 свойства от разных объектов). Прога при сохранении шаблона говорит, что не видит там файла, а при попытке вывести там пусто.
1
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
18.11.2021, 19:31  [ТС]
FlasherX, короче, я полагаю, что проще написать свою утилиту DD если у Вас не получается ничего, то вероятно, у меня так же не получится, т.к я в vbs абсолютный ноль
В любом случае, спасибо Вам огромное еще и еще раз, что потратили свое время на изучение моей проблемы. Успехов вам в вашей деятельности и побольше здоровья в столь трудные времена!
0
6999 / 2884 / 1109
Регистрация: 06.06.2017
Сообщений: 9,802
18.11.2021, 19:52
SogoHimo, вместо BGInfo? Ну, можно Руссиновича напрячь с возвратом своей папки или поддержкой WSH. А чем вам полное имя не подходит? Всё равно BGInfo в реестр пишется.
И проблема тут не ваша, а именно программы, в которой сие важное обстоятельство не предусмотрено. Спасибо на добром слове.
0
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
19.11.2021, 12:02  [ТС]
FlasherX, Да-да-да! Теперь все работает!

With New RegExp
.Pattern = "\nID=(\d+)"
Echo .Execute(CreateObject("Scripting.FileSys temObject").OpenTextFile("C:\Users\admin istrator\Desktop\this.conf").ReadAll)(0) .Submatches(0)
End With
Спасибо еще и еще, и еще раз! Вы мне очень сильно помогли! Спасибо!

Добавлено через 7 минут
А переменные среды, я полагаю, скрипт не понимает, да?
0
малоболт
1328 / 510 / 213
Регистрация: 30.01.2020
Сообщений: 1,244
19.11.2021, 12:14
Цитата Сообщение от SogoHimo Посмотреть сообщение
А переменные среды, я полагаю, скрипт не понимает, да?
Прекрасно понимает: WshShell.Environment
0
6999 / 2884 / 1109
Регистрация: 06.06.2017
Сообщений: 9,802
19.11.2021, 13:03
SogoHimo, на доброе. Если есть желание пихать конфиг прямо на Раб. стол, то тут не переменные среды нужны:
Visual Basic
1
2
3
4
With New RegExp
   .Pattern = "\nID=(\d+)": Echo .Execute(CreateObject("Scripting.FileSystemObject").OpenTextFile(_
   CreateObject("Shell.Application").Namespace(0).ParseName("this.conf").Path).ReadAll)(0).Submatches(0)
End With
0
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
19.11.2021, 13:50  [ТС]
FlasherX, Нет-нет-нет, это я тестировал. Файл находится в appdata. Я думал, что получится сделать так:
With New RegExp
.Pattern = "\nID=(\d+)"
Echo .Execute(CreateObject("Scripting.FileSys temObject").OpenTextFile("%APPDATA%\Roam ing\AnyDesk\sys.conf").ReadAll)(0).Subma tches(0)
End With
Но реальность оказалось жестче, чем я думал
0
6999 / 2884 / 1109
Регистрация: 06.06.2017
Сообщений: 9,802
19.11.2021, 14:14
Вообще-то Roaming — это часть AppData.
Visual Basic
1
2
3
4
With New RegExp
   .Pattern = "\nID=(\d+)": Echo .Execute(CreateObject("Scripting.FileSystemObject").OpenTextFile(_
   CreateObject("WScript.Shell").SpecialFolders(5) & "\AnyDesk\sys.conf").ReadAll)(0).Submatches(0)
End With
0
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
19.11.2021, 14:32  [ТС]
FlasherX, теперь "недопустимый вызов или аргумент процедуры" строка: 2, позиция 28
0
6999 / 2884 / 1109
Регистрация: 06.06.2017
Сообщений: 9,802
19.11.2021, 17:44
SogoHimo, создал файл %AppData%\AnyDesk\sys.conf, BGInfo вывела на Раб.Ст. то, что надо.
0
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
19.11.2021, 18:17  [ТС]
FlasherX, Это какая-то магия...

Я сделал такие же манипуляции, и никаких результатов.
Миниатюры
Найти строку и вывести ее  
0
6999 / 2884 / 1109
Регистрация: 06.06.2017
Сообщений: 9,802
19.11.2021, 18:40
Предполагается, что ID находится не на первой строчке, а там есть хотя бы секция.
Если может быть на первой, то внесём лёгкую правку:
Visual Basic
1
2
3
4
With New RegExp
   .Pattern = "(^|\n)ID=(\d+)": WSH.Echo .Execute(CreateObject("Scripting.FileSystemObject").OpenTextFile(_
   CreateObject("WScript.Shell").SpecialFolders(5) & "\AnyDesk\sys.conf").ReadAll)(0).Submatches(1)
End With
И ошибка со скрина это уже явно не та, что приведена выше.

Заглянул в старый портабельный AnyDesk. Там system.conf, а ключ называет ad.anynet.id. У вас не так?
0
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
19.11.2021, 19:21  [ТС]
Дадада все так

Добавлено через 4 минуты
FlasherX, сейчас отправлю полную картину
0
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
19.11.2021, 19:27  [ТС]
Вся картина:
Миниатюры
Найти строку и вывести ее  
0
6999 / 2884 / 1109
Регистрация: 06.06.2017
Сообщений: 9,802
19.11.2021, 19:35
Лучший ответ Сообщение было отмечено SogoHimo как решение

Решение

Тогда чего вы мне голову с левыми вводными морочите...
Visual Basic
1
2
3
4
With New RegExp
   .Pattern = "(^|\n)ad\.anynet\.id=(\d+)": Echo .Execute(CreateObject("Scripting.FileSystemObject")._
   OpenTextFile(CreateObject("WScript.Shell").SpecialFolders(5) & "\AnyDesk\system.conf").ReadAll)(0).Submatches(1)
End With
1
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
19.11.2021, 20:27  [ТС]
Вы уж извините, но посмотрите, пожалуйста на первый скриншот. У меня не был установлен на домашнем ПК Anydesk, потому я скидывал все по примерным данным, которые помнил. Извините, пожалуйста, если вам доставило это неудобство.

Относительно:
Visual Basic
1
2
3
4
With New RegExp
   .Pattern = "(^|\n)ad\.anynet\.id=(\d+)": Echo .Execute(CreateObject("Scripting.FileSystemObject")._
   OpenTextFile(CreateObject("WScript.Shell").SpecialFolders(5) & "\AnyDesk\system.conf").ReadAll)(0).Submatches(1)
End With
Миниатюры
Найти строку и вывести ее  
0
6999 / 2884 / 1109
Регистрация: 06.06.2017
Сообщений: 9,802
19.11.2021, 21:08
Сохраните скрипт в ANSI или уберите BOM.
1
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
20.11.2021, 12:42  [ТС]
FlasherX, Все заработало! Я не знаю кто Вы, но вы очень умный человек! Спасибо еще раз Вам за то, что помогли!
Вы уж простите, что так долго пришлось возиться, просто с VB и VBS я не знаком совершенно. Сейчас же, я думаю, будет стимул изучить хотя бы азы (т.к, я полагаю, это они и были). Вам еще раз по-больше здоровья и благополучия в вашей деятельности, которой вы занимаетесь! Я думаю, что вы многого добьетесь, если уже не добились. Всего вам доброго!!!
0
0 / 0 / 0
Регистрация: 30.06.2022
Сообщений: 11
30.01.2025, 13:31
К сожалению, скрипт уже не работает...
При выполнении скрипта пишет "файл не найден" на 2 строке 45 символ.
Хотя пути Анидеска с того времени не поменялись. Странно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.01.2025, 13:31
Помогаю со студенческими работами здесь

Если C изображает цифру, то вывести строку «digit», если латинскую букву — вывести строку «lat», если русскую — вывести строку «rus»
Доброй ночи всем программерам, примитивная задачка, но в стрингах я не шарю, помогите плиз... String6. Дан символ C, изображающий цифру...

Найти все файлы, в которых есть указанное слово(передается через командную строку).Вывести сведения о нем и строку
Нужно вывести имя файла, размер, права доступа, имя владельца, и строку с указанным словом. Пробовала по методичке, так как в интернете...

Ввести n строк с консоли, найти самую короткую строку. Вывести эту строку, её длину и количество гласных букв в ней
1.Ввести n строк с консоли, найти самую короткую строку. Вывести эту строку, её длину и количество гласных букв в ней. Помогите плиз

Задан промежуток целых чисел [3;12]. Вывести на экран числа некратные 3 в строку. Найти и вывести их количество
Задан промежуток целых чисел . Вывести на экран числа не кратные 3 в строку. Найти и вывести их количество

Найти строку с наибольшей суммой элементов. Вывести на печать найденную строку и сумму ее элементов
Имя матрицы и размеры: T(N,M)........ условия ограничения N<=15, M<=15


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru