Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/50: Рейтинг темы: голосов - 50, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 24

Обработка вывода в одной строке

04.05.2018, 12:45. Показов 10557. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем Доброго Времени Суток!

У меня немного отвлеченный в этот раз вопрос... Наткнулся на просторах reddit на такой пост, с "оригинальным" выводом "Hello World": [ссылка удалена]
 Комментарий модератора 
Материалы загружаем на форум! Читайте правила


И решил подобное интерпретировать в powershell ))

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
While ($true) {
$Array = @('H', 'e', 'l', 'l','o', ',', ' ', 'W', 'o', 'r','l','d','!')
$eArray = @('','','','','', '','','','','','','','')
$i = 0 
 
while ($i -lt $Array.Count)
{
    if ($eArray[$i] -ne $Array[$i])
    {
    $eArray[$i] = Get-Random -InputObject $Array
    }
    if ($eArray[$i] -eq $Array[$i])
    {
    $i++
    }
    $x = 0 
    Write-Host
    while ($x -lt $eArray.Count)
    {
    Write-Host $eArray[$x] -NoNewline
    $x++
    }
    Start-Sleep -Milliseconds 100
}
Start-Sleep 2
cls
}
Вот собственно перекатанный код
Вопрос заключается в том, можно ли реализовать в PowerShell аналогичное отображение перебора в одну строку, без вывода лишней "шелухи".
Возможно я много хочу от PowerShell, но возможно все таки есть способ реализации?))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.05.2018, 12:45
Ответы с готовыми решениями:

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

Нужно написать программу для вывода на одной строке n натуральных чисел образующих супердробь
Профессор Шилов решил оставить свой след в математике и изобрел супердроби. В его супердроби написаны N чисел каждый поверх другого и все...

Написать программу, которая должна включать функции для: - вывода шапки таблицы; - вывода данных одной строки
Написать программу, которая должна включать функции для: - вывода шапки таблицы; - вывода данных одной строки таблицы; - ввода и...

27
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
18.05.2018, 11:48
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от greg zakharov Посмотреть сообщение
тем более одного цикла
Как это реализовать? Не соображу никак...
Нет, все же одним не обойтись, имхо... перебор строки-образца и перебор набора символов, в один цикл не утрамбовать...
По идее, вот копия гифки, но на powershell, плюс с кириллическими символами:
PowerShell
1
2
3
4
5
6
7
8
9
10
11
$arr='Привет мир!'
$num = 32..126;$num+= 1040..1103
for($i=0;$i -lt $arr.length;$i++){
    do {
        $b = $num|get-random
        $m = [char]$b
        write-host "`b$m" -nonew
        sleep -m 10
    } while($arr[$i] -cne $m)
    write-host $(if($arr[-1] -eq $m){"`b$m"}else{$m}) -nonew
}
- как тут можно утрамбовать всё в один цикл?
0
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
18.05.2018, 13:40
Цитата Сообщение от YuS_2
Нет, все же одним не обойтись, имхо...
Имхой не имхой, а суть здесь предельно проста - перебирать совпадения в бесконечном цикле, как в приведенном ранее примере. Чтобы было более понятно, пример можно переписать так:
PowerShell
1
2
3
4
5
6
7
for ($s, $i, $m = "Hello, world!", 0, -join[Char[]](32..126+1040..1103);;) { # цикл бесконечен
  switch (($c = $m[(Get-Random -Min 0 -Max $m.Length)]) -ceq $s[$i]) {
    $true  { $r += $c; $i++; Start-Sleep -Milliseconds 500 }
    $false { [Console]::Write("`r$r$c`b") }
  }
  if ($i -eq $s.Length) { [Console]::Write("`r$r "); break } # условие выхода из цикла
}
Примерно так. Условие выхода правда можно в самом объявлении цикла записать, здесь же if с бряком для наглядности.
1
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 24
18.05.2018, 13:47  [ТС]
какого из скриптов? И как именно Вы его запускаете? Скрин консоли по окончании работы покажите.
Можно скопировать со страницы форума и вставить прямо в консоль (ПКМ), затем ENTER...
Я пробовал запускать через ISE'шник. Странно, что в его консоли вывод не аналогичный обычной консоли. Понимаю, что разница между ними пресутствует, но надеялся на одинаковый вывод
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
18.05.2018, 14:47
Цитата Сообщение от greg zakharov Посмотреть сообщение
Примерно так.
Понял. Действительно, один цикл и переключатель.
единственный недостаток - наглядность перебора... она с заметными притормаживаниями, но это и понятно, т.к. вывод в консоль не в каждой итерации, а только при $false в переключателе...

Добавлено через 1 минуту
Цитата Сообщение от Zackovich Посмотреть сообщение
Понимаю, что разница между ними пресутствует
И огромная. ISE - по сути GUI приложение с собственной консолью.
0
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 24
18.05.2018, 21:01  [ТС]
Честно говоря, не ожидал, что такой интерес вызовет столь простая задача
Спасибо Вам большое за участие, Ваши примеры ооочень интересны и дают возможность научиться разным методам реализации, как простых, так и не очень примеров
0
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
19.05.2018, 16:35
Цитата Сообщение от YuS_2
единственный недостаток - наглядность перебора... она с заметными притормаживаниями
Ммм...
PowerShell
1
2
3
4
5
6
7
8
for ($s, $i, $m = "Hello, world!", 0, -join[Char[]](32..126+1040..1103); $i -ne $s.Length;) {
  switch (($c = $m[(Get-Random -Min 0 -Max $m.Length)]) -ceq $s[$i]) {
    $true  { $r += $c; $i++ }
    $false { [Console]::Write("`r$r$c`b") }
  }
  Start-Sleep -Milliseconds 100
  [Console]::Write("`r$r")
}
1
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
19.05.2018, 17:33
Цитата Сообщение от greg zakharov Посмотреть сообщение
Ммм...
Да, так лучше, теперь равномерные паузы...
0
1 / 1 / 0
Регистрация: 19.01.2019
Сообщений: 32
24.11.2020, 18:22
C#
1
2
3
4
5
6
$s="Hello, world!"
for ($i=0; $i -lt $s.Length; $i++){
    $letter=$s.Substring($i,1)
    [Console]::Write("`r$letter")
    Start-Sleep -m 100
}
Добавлено через 14 минут
По словам:

C#
1
2
$s="Hello, world!"
$s.Split('').ForEach({[Console]::Write("`r$_ ");Start-Sleep -m 500})
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.11.2020, 18:22

Для вывода матрицы на экран использовать рекурсивную функцию вывода одной строки матрицы
Рекурсивная функция в С++. срочно! ДЛЯ вывода матрицы на экран построчно использовать РЕКУРСИВНУЮ функцию вывода на экран одномерного...

Ввести значения R и Y в одной строке и вывести результат выражения R*(Y*2)+(Y/5)в этой же строке. Использовать поясняющие надписи и комментарии.
Ввести значения R и Y в одной строке и вывести результат выражения R*(Y*2)+(Y/5)в этой же строке. Использовать поясняющие надписи и...

Обработка вывода
У меня в переменную sсhet_1 и sсhet_1 поступают числа от 0 - 12, и поступают они туда постоянно разные, мне нужно выводить эти числа только...

Нужно в одной строке удалить каждый символ, принадлежащий второй строке. При решении нельзя использовать готовые функции
Доброго времени суток! Нужно написать метод, который должен в первой заданной строке удалить каждый символ, принадлежащий второй заданной...

Обработка результатов вывода
Добрый день! имеется вопрос по поводу правильности обработки результатов. Имеется класс php telnet, который авторизуется на...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru