←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

CS:GO
Zmiana String'a na liczbę dwucyfrową


Najlepsza odpowiedź plx211 13.02.2016 21:49

@grankee zobaczyl moj facepalm, poprawiona wersjia:

new szMiesiac[3];
FormatTime(szMiesiac, 2, "%m", GetTime());
new miesiac = StringToInt(szMiesiac) + 1;
PrintToChatAll("miesiac = %02d", miesiac == 13 ? 1 : miesiac);
Przejdź do postu

  • +
  • -
Kuaczek - zdjęcie Kuaczek 06.02.2016

Witam grono AMXX !

 

Posiadam pewien problem.

FormatTime(dzien, sizeof(dzien), "%d", GetTime()); // Liczba wyjściowa to przykładowo 01, 02, 03.... 11,12 ( miesiące )
Chciałbym by liczba miesięcy po dodaniu liczby jeden była o jeden większa i jest po użyciu tego:
 
new liczba = 1;
new miesiacplus = StringToInt(miesiace) + liczba; // Lecz pojawia się ona w postaci: 1,2,3...11,12


new String:wyjscie[3];
IntToString(miesiacplus, wyjscie, sizeof(wyjscie));
Chciałbym by po dodaniu wartości  (liczba) do (miesiace) liczba miała wartość w stringu 01,02,03..... 11,12 < = liczba dwucyfrowa
Próbowałem dodać do każdej wyjściowej liczby 0 ale to jest kiepski pomysł // (01,02.03...010,011,012)
 
 
Dziękuje za wszelką pomoc.
 

 

Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 08.02.2016

Piszesz o miesiącach, a formatujesz dzień...

Według mnie powinno to działać:

new szMiesiac[2];
FormatTime(szMiesiac, 2, "%m", GetTime());
new miesiac=StringToInt(szMiesiac)
(miesiac==12)?(miesiac=1):(miesiac++)//tak aby po grudniu (12) następował styczen(1)
IntToString(miesiac,szMiesiac,2)
if(miesiac<10)
{
szMiesiac[1]=szMiesiac[0]
szMiesiac[0]='0'//ew w razie błędu zastąp apostrofy cudzysłowami czyli daj "0"
}

i teraz masz w zmiennej szMiesiac juz o 1 wiekszy

Odpowiedz

  • +
  • -
plx211 - zdjęcie plx211 13.02.2016

a moze zamiac rzutowac na string, uzyjesz odpowiedniej flagi i wyswietlicz jako integer?

tzn.

new liczba = 1;
new miesiacplus = StringToInt(miesiace) + liczba;
PrintToChatAll("miesiacplus = %02d", miesiacplus);

p.s.

Wiecej o tych flagach przeczytasz tutaj:

https://wiki.alliedm...nced_Formatting

http://www.cplusplus.../cstdio/printf/

https://pl.wikibooks.../C/printf#Flagi

 

@edit

kod oczywiscie nie testowany :)


Użytkownik plx211 edytował ten post 13.02.2016 21:02
Odpowiedz

  • +
  • -
Najlepsza odpowiedź plx211 - zdjęcie plx211 13.02.2016

@grankee zobaczyl moj facepalm, poprawiona wersjia:

new szMiesiac[3];
FormatTime(szMiesiac, 2, "%m", GetTime());
new miesiac = StringToInt(szMiesiac) + 1;
PrintToChatAll("miesiac = %02d", miesiac == 13 ? 1 : miesiac);
Odpowiedz

  • +
  • -
Kuaczek - zdjęcie Kuaczek 17.02.2016

Dziękuje pięknie, byłem blisko celu :) z Wami mi się udało.

Odpowiedz