2015-10-07 3 views
0

Я совершенно холоден, поэтому я понятия не имею, как я даже начинаю кодировать что-то подобное, кроме той части, которая, я думаю, может использовать какой-то таймер. Я хочу, чтобы текст набирал текст на консоли, поэтому скажем, что для базовой записи Console.WriteLine («Hello world») потребуется 5 секунд (так что 2 буквы в секунду). Есть ли команда, которая делает что-то вроде этого? Или мне нужно сделать некоторые (надеюсь, нет) сложные таймеры Sub, которые будут писать текст для меня?Консоль Visual Basic - Создание самого текстового типа

Заранее благодарен!

+4

Возможный дубликат [Создание эффекта буквой с визуальной студией] (http://stackoverflow.com/questions/21057557/creating-a-by-letter-effect-with-visual-studio) –

ответ

2

Используйте этот код, чтобы получить эффект:

Sub ConsoleType(stringToWrite As String, delay As Integer) 
    For Each i As Char In stringToWrite 
     Console.Write(i) 
     Threading.Thread.Sleep(delay) 
    Next 
End Sub 

Вызвать функцию ConsoleType, и он будет «напечатал». Обратите внимание, что задержка составляет миллисекунды. Поскольку вы хотите скорость 2 буквы/сек, вы можете использовать значение 500.

+0

Спасибо, что это было действительно прост и решил мою проблему :) –

+0

Добро пожаловать. –

+0

Возможно, вы знаете, кто я могу это сделать, чтобы каждый «ConsoleType» писал в новую строку? –

1

Не знаю, почему кто-нибудь когда-либо захочет это сделать. Но это легко сделать, вы можете переназначить Console.Out в другой текстовый поток, который может обезьяны с текстом по своему усмотрению.

Class LazyWriter 
    Inherits System.IO.TextWriter 
    Private original As System.IO.TextWriter 

    Public Sub New(original As System.IO.TextWriter) 
     Me.original = original 
    End Sub 

    Public Overrides Sub Write(value As Char) 
     original.Write(value) 
     System.Threading.Thread.Sleep(500) 
    End Sub 

    Public Overrides ReadOnly Property Encoding As Encoding 
     Get 
      Return original.Encoding 
     End Get 
    End Property 
End Class 

Использование:

Sub Main() 
    Console.SetOut(New LazyWriter(Console.Out)) 
    Console.WriteLine("Hello slow world") 
    Console.ReadLine() 
End Sub 

Yikes, это медленно.

 Смежные вопросы

  • Нет связанных вопросов^_^