Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
.NET 4.x

Выбор случайного слова из файла

15.10.2014, 22:32. Показов 1979. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В ТХТ файле есть строки:
[Олег|Виктор|Семен|Александр] Ваш автомобиль [Шкода|БМВ|Опель].
[Шкода|БМВ|Опель] автоцентр на [Каширском шоссе|Обводном канале|Пр.Стачек].
... и т.д. строк много

Как при нажатии на кнопку получить в TextBox один из вариантов предложенных слов? Т.е. к примеру должно получится что-то вроде:
Олег Ваш автомобиль БМВ.
Опель автоцентр на Каширском шоссе.

Т.е. при нажатии на кнопку подставляем разные слова из предложенных вариантов и пишем строки в TextBox.

Вроде как, тут работа с субстринг, сплит, и рандом. Очень интересно увидеть реализацию данной задачи. У меня не хватает еще опыта.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.10.2014, 22:32
Ответы с готовыми решениями:

Выбор случайного слова из txt файла и вывод в textBox
Делаю игру "Виселица" и мне нужно реализовать,чтобы по нажатию кнопки выбиралось рандомное слово из текстового файла и textbox присваивал...

Выбор случайного слова с файла
Есть програмка "игра Поле Чудес", и также текстовый файл с определенными словами и их описаниями. Нужно чтоб в програме с файла выбирало...

Выбор случайного слова из списка
Мне необходимо, чтобы при нажатии на кнопку программа выбирала случайное слово из списка в текстовом документе (например, Doc.txt) и...

12
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
15.10.2014, 22:53
Дядя Корней, файл выложите о которои идет речь
0
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
15.10.2014, 23:08  [ТС]
emenem97, загрузил Но там кусочек маленький. Основной файл на работе остался.
textLine.txt
0
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
16.10.2014, 19:08
Дядя Корней, что за изверг создал структура записи в файл?? Отрадясь такого не видел даже не представляю с чего здесь начинать мучения
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
16.10.2014, 19:50
Лучший ответ Сообщение было отмечено Дядя Корней как решение

Решение

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
        Dim Lines() As String = IO.File.ReadAllLines("C:\textLine.txt") ', System.Text.Encoding.Default)
        Dim Out As New List(Of String)
        Dim R As New Random
        For Each Line As String In Lines
            Dim Tmp As String = ""
            Dim Group1 As String() = (From M As Match In Regex.Matches(Line, "\[(.*?)\]") Select M.Groups(1).Value).ToArray()
            Dim Group2 As String() = (From M As Match In Regex.Matches(Line, "\](.*?)\[") Select M.Groups(1).Value).ToArray()
            Dim Un1() As String = Group1(0).Split("|")
            Dim Un2() As String = Group1(1).Split("|")
            Tmp &= Un1(R.Next(0, Un1.Length)) & " " & Group2(0) & " " & Un2(R.Next(0, Un2.Length))
            Out.Add(Tmp)
        Next
        MsgBox(String.Join(vbCrLf, Out.ToArray))
2
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
16.10.2014, 21:38  [ТС]
Памирыч, огромное спасибо. У меня сегодня родилась идея как это по другому реализовать,без регулярок, но опыта в синтаксисе еще не хватает.

Я хотел написать функцию, которая с помощью whilr ищет в подстроке первое вхождение "[" и последнее "]" потом копируем содержимое между квадратных скобок и разбиваем на массив строк, получится что-то вроде:
слово1
слово2
слово3
...

Затем с помощью рандома генерируем случайный номер и выбираем случайное слово из массива. После чего клеим строку.

А можно как-то поместить текст из textBox в массив?
За место этого:
VB.NET
1
Dim Lines() As String = IO.File.ReadAllLines("C:\textLine.txt")
Что-то вроде этого:
VB.NET
1
Dim Lines() As String = TextBox1.text
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
17.10.2014, 06:05
Дядя Корней, если нужно записать строки TextBox в массив, то
VB.NET
1
Dim Lines() As String = TextBox1.Lines
0
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
10.03.2015, 12:40  [ТС]
Памирыч, подскажи пожалуйста как исправить эту беду:
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
10.03.2015, 15:09
Отключите это стрикт. Где-то в настройках проекта
1
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
10.03.2015, 19:06  [ТС]
Памирыч, спасибо, действительно в настройках это было включено. Правда не знаю, по умолчанию это было включено или я сам нечаянно включил.

Мало ли кому понадобится, то находится стрикт в:
Проект -> Свойства -> Компиляция ->
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
10.03.2015, 19:14
Дядя Корней, лучше его напостоянку не отключать

Оператор Option Strict ограничивает преобразования неявных типов данных только расширяющими преобразованиями; запрещает позднее связывание и запрещает неявную типизации, приводящую к типу Object.
Кодинг без этой опции сладок, да ошибками чреват
1
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
10.03.2015, 19:50  [ТС]
Памирыч, спасибо, буду знать.
Еще такой вопрос, а если в строке неизвестное количество блоков находящихся в открывающей и закрывающей квадратной скобке, то как быть?
К примеру идет строка:
[Олег|Виктор|Семен|Александр] [Каширском шоссе|Обводном канале|Пр.Стачек] [Шкода|БМВ|Опель] ... 100500
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
10.03.2015, 20:39
Код писал давно, и уже не помню, о чем речь.
А сейчас не до кодинга
Но сдается мне, придется создавать не Group1 и Group2, а массив Group()
Размерность оного получать, парсив строку, получая количество блоков или хотя бы количество открывающих/закрывающих скобок (если их порядок нигде не нарушается)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.03.2015, 20:39
Помогаю со студенческими работами здесь

Выбор случайного слова на другом листе
Господа! имеется ли решение такой задачи : На одном листе имеется какой-либо список слов изменяющейся длины. На втором листе необходимо...

Выбор случайного слова из Массива слов
Нужно сделать так, что бы при нажатии кнопки вывелось случайное слово из массива. Пробовал сделать так: Private Sub...

Выбор случайного файла
Добрый день всем:) Подскажите пожалуйста, как сделать выбор рандом файл из такой конструкции? var s = new...

Выбор случайного файла
мне нужна фунция которая через FindFirst/Next выводит случайное имя файла например FileFind("*.dic"); выводит имя...

Выбор случайного файла из указанной папки
Как выбирать из указанной папки случайное изображение?


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru