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

Odczyt pliku z danymi


  • Zamknięty Temat jest zamknięty
12 odpowiedzi w tym temacie

#1 ZepA***

    Zaawansowany

  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:136
  • Steam:steam
  • Lokalizacja:Walce
Offline

Napisano 11.08.2011 19:29

Siemka.




Zrobilem sobie plugin czarnalista. Prawie wszystko w nim dziala. Gdy wpisze /dodajgracza wyskakuje mi menu z wszystkimi graczami na serwerze i mozna wybrac ktorego dodac do czarnej listy.

Do tego momentu wszystko dobrze dziala. Jednak gdy wpisze /czarnalista wyskakuje mi mtod z tylko ostatnim graczem dodanym do czarnej listy, a ja chce zeby wczytywalo mi do mtod wszystkich graczy ktorzy sa zapisani w czarnalista.ini

Czy pomoze mi ktos to naprawic?

Załączone pliki


Użytkownik ZepA*** edytował ten post 11.08.2011 19:30

  • +
  • -
  • 0

Dołączona grafika
------------------------------------
Dołączona grafika


#2 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 11.08.2011 19:49

Ta pętla for w pokazmotd jest jakaś wadliwa.
  • +
  • -
  • 0

#3 Dwdov

    Profesjonalista

  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:172
  • Imię:Dawid
  • Lokalizacja:Jawor
Offline

Napisano 11.08.2011 20:31


for(new i=0; read_file(list_file, i, tekst, 51, len);i++)

Tu się mogę bardzo mylić, ale:
Jest wykonywane kiedy warunek jest spełniony a Ty na starcie dajesz i = 0 czyli jakby false - mam nadzieje że zrozumeisz o co chodzi ; d
Spróbuj tak :

for(new i=0; read_file(list_file, i, tekst, 51, len) != -1;i++)

Użytkownik Dawedov edytował ten post 11.08.2011 20:32

Nie pomagam na PW, tylko na forum.


#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 11.08.2011 22:01

samo for jest dobrze, warunkiem wyjścia z pętli nie jest wartość i tylko wynik funkcji read_file.

To co w pętli to w pętli, a to co ma otaczać listę na początku i końcu + klamry
public zobaczmtod(id)
{
	new tempstring[100];
	new motd[2048];
	new Configsdir[64]
	new list_file[64]
	new tekst[52];
	new len;
	
	get_configsdir(Configsdir, 63)
	format(list_file, 63, "%s/czarnalista.ini", Configsdir)
	
	formatex(motd, charsmax(motd), "<html><body bgcolor=^"#474642^"><font size=^"2^" face=^"verdana^" color=^"FFFFFF^"><strong>");
	formatex(tempstring, charsmax(tempstring), "Czarna Lista</strong><br><br>");
	add(motd, charsmax(motd), tempstring);
	
	for(new i=0; read_file(list_file, i, tekst, 51, len);i++){
		formatex(tempstring, charsmax(tempstring), "^"%s^"", tekst);
		add(motd, charsmax(motd), tempstring);
	}
	
	add(motd, charsmax(motd), "<br></font></body></html>");

	show_motd(id, motd, "Czarna Lista");
}

  • +
  • -
  • 1

#5 Dwdov

    Profesjonalista

  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:172
  • Imię:Dawid
  • Lokalizacja:Jawor
Offline

Napisano 11.08.2011 22:05

Fakt, zapomniałem że read_file nadpisuje, a nie dodaje do tablicy lol.

Nie pomagam na PW, tylko na forum.


#6 ZepA***

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:136
  • Steam:steam
  • Lokalizacja:Walce
Offline

Napisano 12.08.2011 07:27

Wszystko dziala. R3X dzięki. Dawedov tobie tez dziekuje :)


Chcialbym sie jeszcze zapytac jak zrobic aby usunac wyraz z tego pliku? Czyli wpisuje w konsoli np amx_usungracza nick

i mi z pliku czarnalista.ini usuwa gracza?

Użytkownik ZepA*** edytował ten post 12.08.2011 07:31

  • +
  • -
  • 0

Dołączona grafika
------------------------------------
Dołączona grafika


#7 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 12.08.2011 12:58

Usuwanie danych z pliku to kłopotliwa sprawa, musisz przepisać go pomijając wybrane linijki.

Jeśli zadowalają Cię puste linijki to możesz użyć write_file(plik, "", numer_linii_do_usuniecia);

Zadziała to tak

a
b
c


usun b

a

c


  • +
  • -
  • 0

#8 ZepA***

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:136
  • Steam:steam
  • Lokalizacja:Walce
Offline

Napisano 12.08.2011 13:54

A jezeli to mi sie wszystko w 1 lini zapisuje? Idzie tez tak usuwac?
  • +
  • -
  • 0

Dołączona grafika
------------------------------------
Dołączona grafika


#9 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 12.08.2011 15:22

idzie pozamieniać na spacje, otwórz fopen() z flagą r+, poszukaj tego co masz usunąć i w tym miejscu daj fputs(); z tyloma spacjami, że zakryło cały usuwany napis
  • +
  • -
  • 0

#10 ZepA***

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:136
  • Steam:steam
  • Lokalizacja:Walce
Offline

Napisano 12.08.2011 20:11

Czyli chodzi o takie cos?

załużmy ze w czarnalista.ini mam

zepa nobek bartek krzysiu

i jak chce usunac nobek to robie takie cos:

fopen ( list_file, r+ )
fputs ( list_file, nobek )
 write_file ( list_file, "     ")




na pewno to jest zle xD

Pomozesz?

Użytkownik ZepA*** edytował ten post 12.08.2011 20:11

  • +
  • -
  • 0

Dołączona grafika
------------------------------------
Dołączona grafika


#11 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 12.08.2011 22:42

Masz rację, źle :)

Nie wiem czy ma sens pisanie takiego kodu, skoro nVault zapewnia Ci całą funkcjonalność jakiej oczekujesz:
- dodawanie
- usuwanie
- wyszukiwanie
- z dodatkowym .inc`em nawet przeglądanie

Do tego wyszukiwanie odbywa się w czasie stałym, niezależnym od wielkości pliku.
  • +
  • -
  • 0

#12 ZepA***

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:136
  • Steam:steam
  • Lokalizacja:Walce
Offline

Napisano 13.08.2011 12:28

A podasz mi ten dodadkowy inc z vaulta? Na vault to sobie przerobie i moze lepiej mi pojdzie
  • +
  • -
  • 0

Dołączona grafika
------------------------------------
Dołączona grafika


#13 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 13.08.2011 13:42

[INC] nVault Utility - AlliedModders
  • +
  • -
  • 1




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

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