Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C# - tisk na konzoli?

Jeste mam otazku ohledne tisku na konzoli do sloupcu asi pomoci Console.Write()... Ale mam problem, potrebuju to vytisknout do trech sloupcu... Tzn.

Console.WriteLine("neco"); Console.WriteLine("neco");
Console.WriteLine("neco "); Console.WriteLine("neco");
Console.WriteLine("neco "); Console.WriteLine("neco");

Tento kod se mi vypise pod sebe. Ale ja potrebuju aby se mi vytiskl takto ve sloupcich stim ze, nejdrive vitisknu v cyklu prvni sloupec a pak druhy... Nevite?

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
jj uz to tisknu po radcich, ale jeste me zajima, jak tisknout pevne od leveho kraje... Skousel jsem…
Vlada 04.02.2007 23:08
Vlada
Ak poznáš nejakú maximálnu dĺžku slova (alebo takú dĺžku slova, po prekročení ktorej Ti už nevadí, ž… nový
los 04.02.2007 23:50
los
Diky moc chlapce!!! Jen tam stacilo dat \t... fakt jsi mi moc pomohl...:-) Diky i uzivateli mm... nový
Vlada 05.02.2007 00:28
Vlada
Precitaj si poriadne aj co pisem nizsie, tabelator (\t) ti pomoze len do rozdielu dlzky slov 8 znako… nový
MM.. 05.02.2007 00:42
MM..
jj pouzil jsem -10... uz to vsechno chapu. diky poslední
Vlada 05.02.2007 15:46
Vlada
Ta 10 neznamena pocet bodov od laveho okraja (konzola nema body ale znaky, a nie je to ani nic od la… nový
MM.. 05.02.2007 00:00
MM..

jj uz to tisknu po radcich, ale jeste me zajima, jak tisknout pevne od leveho kraje...
Skousel jsem to pomoci:

Console.Write("{0,10:D}", neco); // ta 10 znamena pocet bodu od leveho kraje

Ale kdyz mam ruzne dlouha slova hned u kraje (seznam slov) a naprovo od nich ciselne polozky, a chci aby to vypadalo pekne zformatovane do sloupcu, tak to mam pomoci teto metody stejne rozhazene... Nevim, jestli mi rozumite...

Ak poznáš nejakú maximálnu dĺžku slova (alebo takú dĺžku slova, po prekročení ktorej Ti už nevadí, že sa formátovanie rozsype), tak môžeš použiť rovnaký spôsob formátovania ako na čísla, čiže niečo takéto:

Console.WriteLine ("{0,10}\t{1,10:D}", "abc", 123);

Precitaj si poriadne aj co pisem nizsie, tabelator (\t) ti pomoze len do rozdielu dlzky slov 8 znakov, pri vacsich rozdieloch dlzky slov to budes mat zas zle, je dobre pouzit ten format {...} pre vypis textu (slova), nielen pre vypis ciselnej polozky. Tabelator (\t) potom nepotrebujes.

P.S. ak chces aby bolo slovo zarovnane zlava, pouzi v tom formate zaporne cislo, t.j. napr. -10 namiesto 10, ak chces zarovnat slovo na 10znakov tak aby slovo bolo na lavej strane tych 10 znakov.

Ta 10 neznamena pocet bodov od laveho okraja (konzola nema body ale znaky, a nie je to ani nic od laveho okraja). http://msdn2.microsoft.com/en-us/library/txafckwd(V S.80).aspx
to cislo znamena "preferred formatted field width" to znamena sirku aku chces aby malo to "neco" po vypisani, takze to pouzi na vypis tych slov a daj si tam nieco vacsie (ako maximalne dlhe slovo, napr. 20 ak max. slovo ma 20 znakov).
P.S. odporucam este za to potom dat aspon jednu medzeru alebo dvojbodku apod., ak by niektore slovo malo tych 20znakov alebo viac, aby bola aspon jedna medzera alebo nieco medzi slovom a tym dalsim co za tym v riadku nasleduje.

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