WriteLine per letter?

Status
Niet open voor verdere reacties.

joophaha

Gebruiker
Lid geworden
30 okt 2011
Berichten
24
Is er een manier om een regel te schrijven per letter? Een soort typemachine effect, of bij van die leger code achtige objective dingetjes. (Lekker duidelijk)
Ik ben een beginner met C#
 
1) Waar wil je een regel schrijven? op basis van welke input?
2) C# hoort thuis in het C# forum, het is namelijk een .NET taal die afgezien van syntax onderwater weinig van doen heeft met C++
 
Wel je kan:

Console.Write("a");
Thread.Sleep(10);
Console.Write("b");
Thread.Sleep(10);
Console.Write("c");
Thread.Sleep(10);
Console.Writeline("Nieuwe REGEL :DDD");


Thread.Sleep is gewoon om wat tijd ertussen te laten (vereist using System.Threading;)
de 10 in Sleep(..) is de tijd in miliseconden

Console.Write schrijft een tekst, maar doet geen Catridge Return

Voorbeeld dat vaak voorkomt:
Console.Write("Geef uw naam: " );
String naam = Console.ReadLine();

OUTPUT:
Code:
Geef uw naam: |

|
v

Geef uw naam: Maxim|

Klein voorbeeldprogje
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace Typmachine
{
    class Program
    {
        static void Main(string[] args)
        {
            // ArrayList waar ik de output tijdelijk in opsla
            List<String> lines = new List<String>();
            // Vraag naar lijn 1
            String line = Console.ReadLine();
            lines.Add(line);
            // Vraag naar lijn 2, 3, totdat de gebruiker niets ingeeft
            while (line != "")
            {
                line = Console.ReadLine();
                lines.Add(line);
            }

            // Type de lijnen nu
            // Voor elke lijn in lines
            foreach (String l in lines)
            {
                // Voor elke letter in 'l'
                foreach (Char c in l)
                {
                    Console.Write(c);
                    // Wacht 95 ms per letter
                    Thread.Sleep(95);
                }
                // Wacht iets langer voor een ENTER
                Console.WriteLine();
                Thread.Sleep(100);
            }
        }
    }
}

gr,
Maxim
 
Laatst bewerkt:
Is er niet een manier om dat sneller te doen? Zonder dat je voor elke Console.Write een aparte letter moet ingeven?
Het werkt wel dus bedankt daarvoor.
 
Wel als je gewoon een String pakt met 1 tekst:
String tekst = "Ik kan niet typen";
En daarvan per letter:
foreach (Char c in tekst){
Console.Write(c);
}

Dan type je toch niet zooooveel..
kijk is naar mijn voorbeeld. Daar geef je bijvoorbeeld in:

Code:
Dit is een test
Hallo hallo
Schrijf je tekst, en enter dan twee keer.
Vervolgens ga je zien dat alles zoals een typemachine word getyped

Code:
public void TypeMachine(String str)
{
                foreach (Char c in str)
                {
                    Console.Write(c);
                    // Wacht 95 ms per letter
                    Thread.Sleep(95);
                }
}
gr,
Maxim
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan