Skocz do zawartości

Recommended Posts

Napisano

w artykule "Inne->Czas w Windows" niby wszystko ladnie jest opisane ale jak robie cos w tym stylu:

string zmienna;
zmienna = st.wDay;

To w zmienna zamiast znajdowac sie aktualny dzien znajduje sie jakis kwadracik i tak za kazdym razem niewazne czy chce sekunde czy rok odczytac.
Dlatego tez pytam sie jak przeniesc do jakiejs kontrolki cos ze struktury SYSTEMTIME ? Docelowo mam to za pomoca TextDraw'a na drukarke przeniesc.
Pozdrawiam:
Krzysztof T.

Napisano

najpierw zobacz co znajduje sie w zmiennej st. Jesli tam jest jakis smiec to musisz zle odczytywac czas. Nie wiem jak to jest z klasa string ale ona chyba ma wbudowana konwersje z cyferek. Ale jesli nie to dlatego ze zle przypisujesz do zmienna czas.

Napisano

Polecam zerknąć do dokumentacji Win32 i zobaczyć jakiego typu są pola w strukturze SYSTEMTIME. Podpowiem:

SYSTEMTIME st;
WORD zmienna;
GetSystemTime(&st);
zmienna = st.wYear;

pozdro

Napisano

wiem jakiego typu zwraca to wartosci ale niemoge zrobic czegos takiego:

SYSTEMTIME st;
WORD zmienna;
GetSystemTime(&st);
zmienna = st.wYear;
MessageBox(hWnd, zmienna, "Aktualny dzien", MB_OK);

Jak cos takiego zrobie to kompilator wywala mi blad ze 2 argument funkcji MessageBox jest zly (nieprawidlowego typu.
Natomiast jak dodam pomiedzy zmienna = st.wYear, a MessageBox(..) takie linijki:

string aaa;
aaa = zmienna;

i aaa pryubuje wyswietlic w messageboxie to wyswietla sie ale kwadracik.
aha jak zrobie string aaa = zmienna; (w jednej linni to wywala tez blad ze niemozna przekonwertowac typu)

A moze jest inny sposob na wczytanie daty do zmiennej jakiegos "normalnego" typu ? :)

Pozdrawiam:
Krzysztof T.

Napisano

Po pierwsze drugi argument funkcji MessageBox to wskaźnik na ciąg znaków a ty tam podajesz WORD.

Powinno byc tak:

SYSTEMTIME st; 
char text[32];
GetSystemTime(&st); 
wsprintf(text, "%d", st.wYear); 
MessageBox(hWnd, text, "Aktualny dzien", MB_OK);

Moja rada dla ciebie: naucz się c++ lub patrz czasem na to jakie argumenty przyjmuja funkcje.

Napisano

drugi post ktorym pewnie sie sugerowales przy stwirdzeniu ze niewiem co trzeba podac napisalem po przeczytaniu posta pinolca ktory pokazal jak wpisac do zmiennej date a ja chcialem go naprowadzic o co mi chodzilo bo odnioslem wrazenie ze sie niezrozumielismy.
Zato ty podales mi dokladnie to czego szukalem (jutro sprawdze w praktyce czy bedzie dzialac). PS. gdybym wszystko umial niemusialbym sie pytac :)

Pozdrawiam
Krzysztof T.

Napisano

no wlasnie a dlaczego wsprintf oto jest pytanie??
osobiscie wole sprintf, jest lepszy bo sux wsprintf nie ciagnie floatow i paru innych

a kiedys robilem to strcpy i itoa i strcat itp :D to byly czasy o ja glupi byl ze hej

w obiektowce jest ten bol ze ona oglupia takich jak Luzio, tam na kazdym kroku jest przeciazanie operatorow a pozniej padaja glupie pytania jakby C++ byl jakims klonem paszczaka gdzie lancuchy dodaje sie i chyba nawet odejmuje ;)

Napisano
Luzio napisał:
PS. gdybym wszystko umial niemusialbym sie pytac :)

Mozesz pytac ale to z czym miales problem to jest podstawa (chyba) wiec o podstawy sie nie pyta - to najpierw trzeba sie nauczyc z ksiazki ;)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...