Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Běžící text - C#

Zdravím, potřeboval bych udělat "animaci" v consoli - načíst data ze souboru, vypsat je tak, aby se radky posunuly zleva doprava.

Takto se vypíšou do konzole všchny řádky:

string[] rows = File.ReadAllLines(@"soubor.txt");

 foreach (string radek in rows)
 {
   Console.WriteLine(radek);

 }

Takto mi "animace" funguje pro jeden řádek:

for (int i = 0; i < data.Length; i++)
            {
                Console.CursorLeft = (80 - i) / 2;
                Console.Write(data.Substring(0, i));
                Thread.Sleep(100);
            } 

Potřeboval bych to "spojit" dohromady, aby se posouvaly všechny řádky ze souboru.

Děkuji za odpověďi.

Předmět Autor Datum
Stačí ty cykly vnořit do sebe a nastavovat i Console.CursorTop.
Wikan 08.09.2016 17:54
Wikan
Takto jsem to zkusil, ale nědělá to co má: string[] rows = File.ReadAllLines(@"soubor.txt"); foreac…
Petr.Pa 08.09.2016 19:39
Petr.Pa
CursorTop neustále zvyšuješ. A ty cykly by do sebe měly nejspíš být zanořené obráceně.
Wikan 08.09.2016 19:44
Wikan
Takto se mi ten text nacita po sloupcich: string[] rows = File.ReadAllLines(@"soubor.txt"); int del…
Petr.Pa 08.09.2016 20:39
Petr.Pa
Kam když ho zakomponuješ?
Wikan 08.09.2016 20:45
Wikan
for(int i = 0; i < delka; i++) { Console.CursorLeft = (80 - i) / 2; foreach (string radek in rows) {…
Petr.Pa 08.09.2016 20:56
Petr.Pa
Pozici cursoru musíš samozřejmě nastavit pro každý řádek.
Wikan 08.09.2016 21:02
Wikan
Děkuji, celkem to funguje, jen ta "animace" vypadá dost nepřirozeně - jak se znovu vypisuje text po…
Petr.Pa 08.09.2016 22:02
Petr.Pa
https://msdn.microsoft.com/en-us/library/system.co nsole.movebufferarea.aspx poslední
Wikan 09.09.2016 08:14
Wikan

Takto jsem to zkusil, ale nědělá to co má:

string[] rows = File.ReadAllLines(@"soubor.txt");

foreach (string radek in rows)
            {
                for (int i = 0; i < radek.Length; i++)
                {
                    Console.CursorLeft = (80 - i) / 2;
                    Console.Write(radek.Substring(0, i));
                    Console.CursorTop += 1;
                    Thread.Sleep(100);
                }

            }

Co je tam špatně?

Díky

Takto se mi ten text nacita po sloupcich:

string[] rows = File.ReadAllLines(@"soubor.txt");
    
            int delka = rows[0].Length; 

            for(int i = 0; i < delka; i++)
            {

                foreach (string radek in rows)
                {
                    Console.WriteLine(radek.Substring(0, i));
                }
                    
            }

Ale když tam zakomponuju to Console.Cursorleft , tak se to vůbec nepohybuje.

Zkrátka potřeboval bych, aby řádky textu "přijely" z levého okraje k pravému.
Kdyžtak mi pls nappiš kus kódu jak by to mělo vypadat.

Díky

Zpět do poradny Odpovědět na původní otázku Nahoru