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

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

15.11.2021, 17:25. Показов 8932. Ответов 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
6977 / 2869 / 1102
Регистрация: 06.06.2017
Сообщений: 9,748
15.11.2021, 17:53
Visual Basic
1
WSH.Echo Filter(Split(CreateObject("Scripting.FileSystemObject").OpenTextFile("test.txt").ReadAll, vbNewLine), "Привет, мир!")(0)
либо
Visual Basic
1
2
3
4
With New RegExp
   .Pattern = "[^\r\n]*Привет, мир![^\r\n]*"
   WSH.Echo .Execute(CreateObject("Scripting.FileSystemObject").OpenTextFile("test.txt").ReadAll)(0)
End With
1
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
15.11.2021, 18:54  [ТС]
Ошибка (800A0035) 3 строка, 4 символ
0
6977 / 2869 / 1102
Регистрация: 06.06.2017
Сообщений: 9,748
15.11.2021, 19:23
Файл test.txt с указанным содержимым должен быть в ANSI и лежать рядом с .vbs.
0
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
15.11.2021, 19:39  [ТС]
То что он должен быть рядом-то я понял сразу по OpenTextFile("test.txt")
Кодировку поменял, но все равно такая же проблема.
И сразу вопрос: а с UTF-8, я полагаю сделать этого не получится, правильно? Просто сам файл в этой кодировке

Добавлено через 7 минут
FlasherX, просто на самом деле, если без простого примера, задача стоит следующая:
У человека в системном файле .conf лежит его id, среди прочей информации. И задача в том, чтобы человек, нажимая на файл, увидел свой айдишник. Для того и пример в первом сообщении. Просто усложнять лишней информацией не хотел
0
6977 / 2869 / 1102
Регистрация: 06.06.2017
Сообщений: 9,748
15.11.2021, 19:45
Ошибка означает, что файл в рабочей папке не найден. Как скрипт запускаете?
Либо укажите полное имя, тогда не должно быть проблемы.

Цитата Сообщение от SogoHimo Посмотреть сообщение
Просто сам файл в этой кодировке
Вас кто-то насильно принуждает в ней его держать?

Цитата Сообщение от SogoHimo Посмотреть сообщение
Просто усложнять лишней информацией не хотел
А зря. Так как во втором коде есть нюансы со спецсимволами. Лучше тогда первый юзать.

И что с этим айдишником после просмотра он делать будет?
0
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
15.11.2021, 19:52  [ТС]
Ну Типа. Дело в том, что файл там компилируется не по моей воле, а по воле программы. Идея как раз в том, чтобы "не касаясь" исходника вытащить информацию

Добавлено через 1 минуту
ID планируем вывести в BGinfo Пользователи частенько впадают в ступор, когда их просят назвать айдишник, потому решили обойти проблему таким методом
0
6977 / 2869 / 1102
Регистрация: 06.06.2017
Сообщений: 9,748
15.11.2021, 19:55
У вас BGInfo работает с Echo? А то, помню, у меня с этим проблемы были.

И раз запрашиваете ID, тогда зачем вам вся строка?
0
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
15.11.2021, 20:06  [ТС]
Что-то и правда.. прошу прощения. Немного оплошал с вопросом

Добавлено через 2 минуты
А что касается Echo, вроде как гуглил, должен работать...у меня был пример, который вместе с организацией канул в небытие. Была реализована BG с выводом конкретного ID. Вопрос только вот в том, как тот рукастый человек смог это сделать...
0
6977 / 2869 / 1102
Регистрация: 06.06.2017
Сообщений: 9,748
15.11.2021, 20:07
Вообще логично сделать папки с этим файлом расшаренными и читать их скриптом без спрашивания самих юзеров.
К слову, если вы замените искомую подстроку на латиницу, как в запросе, то коды и с UTF-8 сработают.
0
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
15.11.2021, 20:09  [ТС]
Как пример: https://winitpro.ru/index.php/... op-bginfo/
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
winmgt = "winmgmts:{impersonationLevel=impersonate}!//"
Set oWMI_Qeury_Result = GetObject(winmgt).InstancesOf("Win32_ComputerSystem")
For Each oItem In oWMI_Qeury_Result
Set oComputer = oItem
Next
If IsNull(oComputer.Model) Then
sComputerModel = "*no-name* model"
Else
If LCase(oComputer.Model) = "system product name" Then
sComputerModel = "Custom-built PC"
Else
sComputerModel = oComputer.Model
End If
End If
sComputer = Trim(sComputerModel)
Echo sComputer
0
6977 / 2869 / 1102
Регистрация: 06.06.2017
Сообщений: 9,748
15.11.2021, 20:17
Понятно, может, то была проблема с системными библиотеками.

Цитата Сообщение от SogoHimo Посмотреть сообщение
Немного оплошал с вопросом
Логично сформулировать его полноценно.
0
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
15.11.2021, 20:23  [ТС]
Тогда еще вопрос, раз уж вы правильно подметили мою ошибку, каким образом можно было бы сделать маску для найденого текста. То есть, чтобы выводить не всю все же строку, а фрагмент после "ID=". Я полагаю, в BG это впихивается как раз-таки командой Echo?

Спасибо Вам за то, что уделили мне столько времени!

Добавлено через 2 минуты
Есть файл .conf, где есть строка "ID=<айди пользователя>". Необходимо вывести <айди пользователя> в BG info
0
6977 / 2869 / 1102
Регистрация: 06.06.2017
Сообщений: 9,748
15.11.2021, 20:41
Visual Basic
1
Echo Split(Filter(Split(CreateObject("Scripting.FileSystemObject").OpenTextFile("this.conf").ReadAll, vbNewLine), "ID=")(0),"=")(1)
либо
Visual Basic
1
2
3
4
With New RegExp
   .Pattern = "\nID=(\d+)"
   Echo .Execute(CreateObject("Scripting.FileSystemObject").OpenTextFile("this.conf").ReadAll)(0).Submatches(0)
End With
0
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
15.11.2021, 21:11  [ТС]
Несоответствие типа 'Echo'
800A00D

Вы об этом говорили?
0
6977 / 2869 / 1102
Регистрация: 06.06.2017
Сообщений: 9,748
15.11.2021, 21:17
Цитата Сообщение от SogoHimo Посмотреть сообщение
Вы об этом говорили?
Нет. Echo только в BGInfo поддерживается.
Цитата Сообщение от SogoHimo Посмотреть сообщение
А что касается Echo, вроде как гуглил, должен работать.
0
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
17.11.2021, 18:37  [ТС]
FlasherX, Я почитал на форумах и говорят, что вроде:

Есть несколько проблем со сценарием, фактическая причина ошибки «Файл не найден» заключается в том, что FileSystemObjectне не может найти файл «this.conf». Это связано с тем, что OpenTextFile()метод не поддерживает относительные пути и ожидает абсолютный путь к файлу, независимо от того, находится он в том же каталоге, что и исполняемый скрипт, или нет.

Вы можете исправить это, вызвав GetAbsolutePathName()и передав имя файла.

И выдали это:
Dim fso: Set fso = CreateObject("Scripting.FileSystemObject ")
Dim filename: filename = "this.conf"
Dim filepath: filepath = fso.GetAbsolutePathName(filename)
Dim filecontent: filecontent = fso.OpenTextFile(filepath).ReadAll
Но при этом тут не указано ни то, что мне нужен ID, ни то, что это нужно выводить через Echo.. Вы бы могли мне подсказать в этом что-то?
0
6977 / 2869 / 1102
Регистрация: 06.06.2017
Сообщений: 9,748
17.11.2021, 19:53
Цитата Сообщение от SogoHimo Посмотреть сообщение
OpenTextFile()метод не поддерживает относительные пути и ожидает абсолютный путь к файлу, независимо от того, находится он в том же каталоге, что и исполняемый скрипт, или нет.
Это сущая неправда.
Впрочем, я сразу написал:
Цитата Сообщение от FlasherX Посмотреть сообщение
Либо укажите полное имя, тогда не должно быть проблемы.
Но это точно не проблема OpenTextFile, это другая проблема, которую вы проигнорировали:
Цитата Сообщение от FlasherX Посмотреть сообщение
Как скрипт запускаете?

Цитата Сообщение от SogoHimo Посмотреть сообщение
И выдали это:
Смешные они, что скажешь...
Так пробуйте:
Visual Basic
1
Echo Split(Filter(Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(Left(WSH.ScriptFullName, InStrRev(WSH.ScriptFullName,"\")) & "this.conf").ReadAll, vbCrLf), "ID=")(0),"=")(1)
0
14 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 23
17.11.2021, 20:24  [ТС]
FlasherX, Америкаааанцы зато укакивались доказывали мне человека три, что "это неправильно"

Утром на работе протестирую. Спасибо Вам еще раз огромное за обратную связь!
0
6977 / 2869 / 1102
Регистрация: 06.06.2017
Сообщений: 9,748
17.11.2021, 20:58
SogoHimo, аж 3... У них геолокация высветилась?
Пожал'ста. )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.11.2021, 20:58
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru