Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Problem z dodaniem liczby do pobranego stringa czasu.Chciałbym by string "rok" po wykonaniu pobrania liczby dodawał "zawsze" po prostu o 1 większą liczbę.

string problem rok formattime dodawanie +1

Najlepsza odpowiedź StoDwaJeden , 07.11.2015 09:00

new String:godzina_str[8];
FormatTime(godzina_str, sizeof(godzina_str), "%H", GetTime());
new godzina = StringToInt(godzina_str);
godzina +=1;

CPrintToChat(client, "Rok: %d .",godzina);

Przejdź do postu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
12 odpowiedzi w tym temacie

#1 Bezustanny

    Nowy

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:8
  • Imię:Łukasz
  • Lokalizacja:Polska
Offline

Napisano 05.11.2015 16:49

Chciałbym prosić Was o pomoc, nie umiem poradzić sobie z tym jakże wydający się prostym problemem.

new String:rok[10]; 

FormatTime(rok, sizeof(rok), "%Y"); // Pobrana informacja %Y o danym roku.
CPrintToChat(client, "Rok: %s .",rok);

Chciałbym by string "rok" po wykonaniu pobrania liczby dodawał "zawsze" po prostu o 1 większą liczbę.

 

Czyli jakby string rok + 1

 

 

Dziękuję za pomoc.

Męczę się już z tym tydzień..


Użytkownik Bezustanny edytował ten post 05.11.2015 16:52


#2 Kowalsky

    master of disaster

  • Użytkownik

Reputacja: 136
Zaawansowany

  • Postów:424
  • Lokalizacja:San José
Offline

Napisano 05.11.2015 21:59

Próbowałeś tak?
new String:rok[10]; 

FormatTime(rok, sizeof(rok), "%Y"); // Pobrana informacja %Y o danym roku.
CPrintToChat(client, "Rok: %s .",rok+1);

  • +
  • -
  • 1

#3 Bezustanny

    Nowy

  • Autor tematu
  • Zbanowany

Reputacja: 0
Nowy

  • Postów:8
  • Imię:Łukasz
  • Lokalizacja:Polska
Offline

Napisano 06.11.2015 06:36

Próbowałeś tak?

new String:rok[10]; 

FormatTime(rok, sizeof(rok), "%Y"); // Pobrana informacja %Y o danym roku.
CPrintToChat(client, "Rok: %s .",rok+1);

 

Tej opcji także próbowałem.

Wtedy w CPrintToChat szuka stringa o nazwie "rok+1".

 

Probowałem też zrobić coś takiego. Nie jestem aktualnie w domu ale mniej więcej napiszę co wymyśliłem i niby kompilacja wszystko pobrała dobrze.

Był problem tylko z wyświetleniem tej liczby. ( albo jej nie było albo w ogóle jakieś cuda )

new String:rok[10]; 

new czas = FormatTime(rok, sizeof(rok), "%Y");
czas += 1;

CPrintToChat(client, "Rok: %s .",czas );

lub

 

new czas = FormatTime(rok, sizeof(rok), "%Y");
new liczba = 1;
new pobrana = czas + liczba;

CPrintToChat(client, "Rok: %s .",pobrana);

 

Jak dobrze pamiętam to jeszcze taką opcje robiłem.

new String:czas[10] = FormatTime(rok, sizeof(rok), "%Y");
new String:liczba[10] = 1;
new String:pobrana[10] = czas[10] + liczba[10];

CPrintToChat(client, "Rok: %s .",pobrana);

Próbowałem też robić to za pomocą stringów.

Każda pomoc jest bardzo przydatna.

 

 

Dziękuję, że ktoś zainteresował się tym tematem.

proszę o pomoc lub chociaż naprowadzenie. :(


Użytkownik Bezustanny edytował ten post 06.11.2015 06:45


#4 StoDwaJeden

    Pomocny

  • Użytkownik

Reputacja: 15
Początkujący

  • Postów:68
  • Imię:Fajne
  • Lokalizacja:Daleka
Offline

Napisano 06.11.2015 14:41

Zmień string rok na liczbę i wtedy dodawaj do niej 1.


  • +
  • -
  • 0

#5 Bezustanny

    Nowy

  • Autor tematu
  • Zbanowany

Reputacja: 0
Nowy

  • Postów:8
  • Imię:Łukasz
  • Lokalizacja:Polska
Offline

Napisano 06.11.2015 15:37

Nie chcę zmieniać string roku na aktualny rok, tylko by rok pobierało na bieżąco po wykonaniu tego kodu.

Nie potrzebuję takiego kodu gdzie po każdych 12 miesiącach będę musiał go ponownie kompilować. ( Co to za logika ? )

 

 

Dalej brak rozwiązania. :/



#6 StoDwaJeden

    Pomocny

  • Użytkownik

Reputacja: 15
Początkujący

  • Postów:68
  • Imię:Fajne
  • Lokalizacja:Daleka
Offline

Napisano 06.11.2015 20:02

Pobierz rok, a gdy go pobierzesz zamień go na liczbę, bo teraz robisz tak że do np słowa "kot" chcesz dodać 1.


  • +
  • -
  • 0

#7 Bezustanny

    Nowy

  • Autor tematu
  • Zbanowany

Reputacja: 0
Nowy

  • Postów:8
  • Imię:Łukasz
  • Lokalizacja:Polska
Offline

Napisano 06.11.2015 21:25

Pobierz rok, a gdy go pobierzesz zamień go na liczbę, bo teraz robisz tak że do np słowa "kot" chcesz dodać 1.

 

Zaprezentuj część kodu, na tą chwilę rozumiem, że źle używam string'a.

 

 

Ma to związek z tym ?

%d - liczba dziesietna
%6d - liczba dziesietna zajmujaca co najmniej 6 znakow
%f - liczba zmiennopozycyjna
%6f - liczba zmiennopozycyjna zajmujaca conajmniej 6 znakow
%.2f - liczba zmiennopozycyjna z 2 miejscami po kropce dziesietnej
%6.2f - liczba zmiennopozycyjna z 2 miejscami po kropce zajmujaca conajmniej 6
znakow
%o - liczba osemkowa
%x - liczba szesnastkowa
%c - znak( char)
%s - napis(string)

Liczę na jakieś bardziej konkretne podpowiedzi lub kod, bym mógł sobie go potem przestudiować po swojemu.

Czy funkcja StringToInt będzie do tego potrzebna ?



#8 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 06.11.2015 21:58

Nie rozumiem co chcesz uzyskac? Przeciez data (minuta, godzina, rok) pobierana jest z srcds a on pobiera ja z maszyny na ktorej stoi. Wiec jezeli na maszynie rok ulegnie zmianie to na serwerze tez.
  • +
  • -
  • 0

b35020692_qesnxqa.png


#9 Bezustanny

    Nowy

  • Autor tematu
  • Zbanowany

Reputacja: 0
Nowy

  • Postów:8
  • Imię:Łukasz
  • Lokalizacja:Polska
Offline

Napisano 06.11.2015 22:08

Nie rozumiem co chcesz uzyskac? Przeciez data (minuta, godzina, rok) pobierana jest z srcds a on pobiera ja z maszyny na ktorej stoi. Wiec jezeli na maszynie rok ulegnie zmianie to na serwerze tez.

 

Chcę uzyskać liczbę o jeden większą niż pobrana.

W tym przypadku dany rok + jeden.

Czyli zakładając, że pobrana pobierze 2015 to chce mieć przykładowo w informacji 2016.



#10 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 06.11.2015 22:25

new String:godzina_str[8];
FormatTime(godzina_str, sizeof(godzina_str), "%H", GetTime());
new godzina = StringToInt(godzina_str);
godzina +〓1;
Sprawdz tak.
// tel.
  • +
  • -
  • 2

b35020692_qesnxqa.png


#11 Bezustanny

    Nowy

  • Autor tematu
  • Zbanowany

Reputacja: 0
Nowy

  • Postów:8
  • Imię:Łukasz
  • Lokalizacja:Polska
Offline

Napisano 07.11.2015 08:11

new String:godzina_str[8];
FormatTime(godzina_str, sizeof(godzina_str), "%H", GetTime());
new godzina = StringToInt(godzina_str);
godzina +〓1;
Sprawdz tak.
// tel.

 

 

Użyłem tej funkcji. Po wykonaniu pojawia coś takiego:

 

e94bd6.jpg

 

Strig czytany jest jako błąd. 

 

Nie wiem, może to ma związek z tym %s ?

Po wykonaniu kodu w CPrintToChat w ogóle nic nie wyświetla.

 

 
new String:godzina_str[8];
FormatTime(godzina_str, sizeof(godzina_str), "%H", GetTime());
new godzina = StringToInt(godzina_str);
godzina +=1;

CPrintToChat(client, "Rok: %s .",godzina);
 

Albo jestem jakiś ułomny i tego nie widzę.

Proszę mnie poprawić jeżeli coś źle napisałem.

 

String jest używany tylko do:

CPrintToChat ( zapis na czacie ) oraz WriteFileLine ( zapis w pliku ) < = Format pliku UTF-8 ( Bez-BOM )

Myślę, że format pliku tutaj chyba nie ma znaczenia skoro w zapisie na czacie w ogóle nie pojawia się informacja.


Użytkownik Bezustanny edytował ten post 07.11.2015 08:17


#12 StoDwaJeden

    Pomocny

  • Użytkownik

Reputacja: 15
Początkujący

  • Postów:68
  • Imię:Fajne
  • Lokalizacja:Daleka
Offline

Napisano 07.11.2015 09:00   Najlepsza odpowiedź

new String:godzina_str[8];
FormatTime(godzina_str, sizeof(godzina_str), "%H", GetTime());
new godzina = StringToInt(godzina_str);
godzina +=1;

CPrintToChat(client, "Rok: %d .",godzina);


  • +
  • -
  • 1

#13 Bezustanny

    Nowy

  • Autor tematu
  • Zbanowany

Reputacja: 0
Nowy

  • Postów:8
  • Imię:Łukasz
  • Lokalizacja:Polska
Offline

Napisano 07.11.2015 10:19

Poradziłem sobie z tym problemem. Podziękowania dla wszystkich.

Reputacje dodane.







Również z jednym lub większą ilością słów kluczowych: string, problem, rok, formattime, dodawanie, +1

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych