• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak ogarnąć komendę 'color'

Object Storage Arubacloud
0 głosów
595 wizyt
pytanie zadane 27 maja 2017 w C i C++ przez Shiro Stary wyjadacz (10,300 p.)
Cześć,

Chciałbym zrobić funkcje, która po otrzymaniu koloru tekstu i koloru tła, zmienia na te podane, niestety nie mam bladego pojęcia jak się za to zabrać, nie pisząc 254 ifów. Czy ktoś ma jakiś pomysł ? Poniżej zamieszczam ss'y z tymi kolorami.

ss'y: https://www.dropbox.com/sh/brccqfk57fulq1d/AADN-e1AaNEvrP31TOreu03Va?dl=0

Z góry dziękuje za pomysły ;) Pozdrawiam ;)
komentarz 4 czerwca 2017 przez Shiro Stary wyjadacz (10,300 p.)
Udało mi się popełnić tę funkcję jeżeli kogoś interesuje kod, zapraszam tutaj: https://forum.pasja-informatyki.pl/259249/

3 odpowiedzi

0 głosów
odpowiedź 27 maja 2017 przez Knayder Nałogowiec (37,640 p.)
Daj funkcję która zmienia kolor i jakie argumenty przyjmuje.
komentarz 27 maja 2017 przez Shiro Stary wyjadacz (10,300 p.)
Chodzi o komendę: SetConsoleTextAttribute(hConsole, k); jej argument to numer zobacz proszę linki :)
0 głosów
odpowiedź 27 maja 2017 przez MetGang Nałogowiec (34,360 p.)
ForegroundColor + 16 * BackgroundColor

Tym wzorem otrzymujesz kolor wyjściowy dla funkcji.
komentarz 27 maja 2017 przez Shiro Stary wyjadacz (10,300 p.)
Niestety to raczej nie zadziała, przykładowo dla fore=green, bg=black: 3 + 16 * 1 = 19. Po za tym tam jest przesunięcie:

bg=black: 1szy jest niebieski (fore)
bg=blue  : 1szy jest czarny    (fore)
itd.

Dzięki za pomoc i liczę na dalszą pomoc ;) Miłego dnia ;)
komentarz 27 maja 2017 przez MetGang Nałogowiec (34,360 p.)

przykładowo dla fore=green, bg=black: 3 + 16 * 1 = 19

Zaczynasz od 0 nie od 1. Czarny ma wartość 0, a biały F (15).

komentarz 27 maja 2017 przez Shiro Stary wyjadacz (10,300 p.)

No dobra no to 18 (fore:gree, bg:blue

No ale będę kombinować, jak znajdę chwilę :)

0 głosów
odpowiedź 27 maja 2017 przez criss Mędrzec (172,590 p.)

Dlaczego 254 ify? O_O Kolorów jest... kilkanaście, tak? No to 2 * liczba_kolorów to jest liczba potrzebnych ifów.

A troche realnej, to... Rozumiem, że funkcja ma otrzymywać kolory w postaci ich nazw (stringi), bo jeżeli argumentami funkcji mają być inty (id kolorów), to nie wiem po co ci jakiekolwiek ify ? W takim razie stwórz sobie mape z kluczem string (nazwa koloru) i wartościami int (id kolorów). I w zasadzie to tyle.

void f(const std::string & _txtName, const std::string & _bgName)
{
   static std::map<std::string, int> colors{
      std::make_pair("black", 0 /* nie wiem czy to faktycznie jest 0 */),
      // reszta wypełniania mapy
   };
   setTextColor(colors[_txtName]);
   setBgColor(colors[_bgName]);
}

setTextColor i setBgColor to ofc odpowiednie funkcje z WinAPI (bo wydaje mi się, że o to ci chodzi).

komentarz 27 maja 2017 przez Shiro Stary wyjadacz (10,300 p.)

No trochę głupio zrobiłem nie pisząc o jaką komendę mnie chodzi, a chodziło o: 


	HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
		SetConsoleTextAttribute(hConsole, k);

Ale dzięki ;)

komentarz 27 maja 2017 przez criss Mędrzec (172,590 p.)
No to dobrze myślałem mniej-więcej.
komentarz 27 maja 2017 przez Shiro Stary wyjadacz (10,300 p.)
Jasne że tak ;D

Czy możesz mi napisać jakie biblioteki są potrzebne aby to zadziałało ?
komentarz 27 maja 2017 przez criss Mędrzec (172,590 p.)
To co napisałem (te dwie funkcje set*Color) to jest taki pseudokod. W ich miejsce masz wrzucić wywołania używanych przez ciebie funkcji z WinAPI. Biblioteka to ofc windows.h, ale myśle, że już jej używasz :P
komentarz 27 maja 2017 przez Shiro Stary wyjadacz (10,300 p.)
Tak myślałem że są to funkcję / komendy, których po prostu nie znam. Niestety komenda, której używam używam kod zbiorczy koloru który jednoznacznie określa fore i bg color. Zobacz proszę linki (ss'y)

Przez co takie rozwiązanie jest utrudnione.

Podobne pytania

0 głosów
1 odpowiedź 86 wizyt
pytanie zadane 27 lipca 2018 w HTML i CSS przez _Pita_ Stary wyjadacz (11,410 p.)
0 głosów
2 odpowiedzi 201 wizyt
pytanie zadane 27 lipca 2017 w JavaScript przez Konfeusz Bywalec (2,810 p.)
0 głosów
1 odpowiedź 387 wizyt
pytanie zadane 25 listopada 2020 w Systemy operacyjne, programy przez BarSki13 Obywatel (1,250 p.)

92,563 zapytań

141,416 odpowiedzi

319,595 komentarzy

61,948 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...