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 z pliku z "argumentami"


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

#1 dram

    Wszechwidzący

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:277
  • Lokalizacja:xxxx
Offline

Napisano 05.04.2011 17:06

Witam. Mam pytanie dotyczące czytania pliku...

Mianowicie. Lecę po pliku config.ini i sprawdzam kolejno linijki wyszukując odpowiednich komend.

1 linjka w pliku niech będzie :

nazwa_serwera "AMXX.PL","amxx.PL"
druga:
liczby 1,2,3,4,5,6,7,8,9,10,11

Chcę was prosić o kod który szuka określonych fraz które są początkiem lini(w naszym wypadku nazwa_serwera/liczby) i pobiera z nich argumenty a następnie zapisuje do tablicy: new ARGS[100](max argumentow 100)

Czyli w przypadku komendy :"liczby"
ARGS[0] = 1
ARGS[1] = 2
ARGS[2] = 3
....
w Przypadku komendy "nazwa_serwera"
ARGS[0] = "AMXX.PL"
ARGS[1] = "amxx.PL"

DZIĘKUJE. POZDRAWIAM.
  • +
  • -
  • 0
Co oferuje?

Pisanie pluginów amxx/modow itd
Skryptow php

Kontakt na PW LUB GG

#2 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 05.04.2011 17:22

Musisz zrobić własny parser, bierzesz najpierw za pomocą parse odczielasz : nazwa_serwera od reszty potem w reszcie muszisz znaleść początkowy " i końcowy " funkcją strfind wartość z pomiędzy "" wrzucasz do tablicy, potem robisz to samo. co do liczb to najpierw pobierasz wartość od początku stringa do , a potem kolejno od pierwszego , do końcowego , i na samym koncu od ostatniego , do końca stringa. Proste nie ? :P
  • +
  • -
  • 2

#3 dram

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:277
  • Lokalizacja:xxxx
Offline

Napisano 05.04.2011 17:24

^^ no nie ;(

TZN chciałbym żeby wszystko oddzielało przecinkami.. Czyli że to co jest między przecinkami wrzucało do tabeli.
A w przypadku gdy nie ma przecinków wrzuca to co tam jest.

Użytkownik dram edytował ten post 05.04.2011 17:32

  • +
  • -
  • 0
Co oferuje?

Pisanie pluginów amxx/modow itd
Skryptow php

Kontakt na PW LUB GG

#4 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 05.04.2011 17:46

Tak czy inaczej musisz pisać własnego parsera a to jak on będzie działał zależy tylko od tego jak go "wykodzisz" xP
  • +
  • -
  • 0

#5 dram

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:277
  • Lokalizacja:xxxx
Offline

Napisano 05.04.2011 18:03

No ale jak pobrać ilość ","

Jak pobrać w których miejscach się one znajdują?
  • +
  • -
  • 0
Co oferuje?

Pisanie pluginów amxx/modow itd
Skryptow php

Kontakt na PW LUB GG

#6 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 05.04.2011 18:18


new iIlosc = 0, iPozycje[10] = {0}, szString[256], temp = -1;
while(1)
{
temp = strfind(szString, "^",^"", _, temp + 1);
if(temp == -1) break;
iPozycje[iIlosc] = temp;
iIlosc ++;
}

Może zadziała xP
  • +
  • -
  • 0

#7 dram

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:277
  • Lokalizacja:xxxx
Offline

Napisano 05.04.2011 20:50

Mhm no raczej nie...
A jak podzielić to wszystko PARSEM, tak aby była możliwość taka że jest zmienna liczba argumentów ?:)
  • +
  • -
  • -1
Co oferuje?

Pisanie pluginów amxx/modow itd
Skryptow php

Kontakt na PW LUB GG

#8 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 05.04.2011 21:11

Czemu twierdzisz że nie ? Sprawdziłeś chociaż ?
Co do parsa to Pętla i dzielenie drugiej części na 2 części i tak w kółko do puki druga część nie będzie pusta.
  • +
  • -
  • 0

#9 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 05.04.2011 21:36

jesli chodzi ci o odczyt cos na wzor cvarow to mozesz zrobic
tablice np tab[100][33]

i tak :
1 parse
2 sprawdzasz czy liczba
a)liczba to wpisujesz tab[licznik]=liczba_zmienona_na_znak+"#$#";
b)string wpisujesz tab[licznik]=string;
3 koniec pliku?
a) nie - punkt 1
b) tak - koniec petli

i potem tylko funkcje sprawdzajaca czy w stringu znajduje sie ciag #$# jesli tak to wpisana jest liczba jesli nie to wpisany jest string :D
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#10 dram

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:277
  • Lokalizacja:xxxx
Offline

Napisano 06.04.2011 05:56

Hmm a jeszcze jak sprawdzić długość wszystkich liter w tablicy..

Powiedzmy mam cos takiego new szSTRING[40] = "Ala Ma Kota"

I zwraca mi 11.. Pozdrawiam.
  • +
  • -
  • 0
Co oferuje?

Pisanie pluginów amxx/modow itd
Skryptow php

Kontakt na PW LUB GG

#11 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 06.04.2011 07:31

sizeof(szSTRING);

  • +
  • -
  • 0

#12 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 06.04.2011 08:45

sizeof zwróci 40 :P
strlen("Ala Ma Kota") = 11

  • +
  • -
  • 1

#13 dram

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:277
  • Lokalizacja:xxxx
Offline

Napisano 06.04.2011 12:36

No dobra a jak usunąć z danego tekstu pierwsze 11 znaków?

Bądź np zacząć zapisywać tekst od 12 znaka do końca.

Użytkownik dram edytował ten post 09.04.2011 23:14

  • +
  • -
  • 0
Co oferuje?

Pisanie pluginów amxx/modow itd
Skryptow php

Kontakt na PW LUB GG

#14 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 10.04.2011 08:00

new szString[] = "Ala ma kota, a kot ma Ale.", szEnd[32];

add(szEnd, sizeof(szEnd) - 1, szString, 11);
//szEnd == "Ala ma kota";

format(szEnd, sizeof(szEnd) - 1, "%s", szString[11]);
//szEnd == ", a kot ma Ale.";

Pisane na szybko w notatniku :P
  • +
  • -
  • 1

#15 dram

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:277
  • Lokalizacja:xxxx
Offline

Napisano 10.04.2011 08:56

Okej a ostatnia rzecz:) (mam nadzieje)

Jak policzyć w danym stringu ilość danego znaku?:D

Np. "Ala ma kota" liczymy a

zwraca 4
  • +
  • -
  • 0
Co oferuje?

Pisanie pluginów amxx/modow itd
Skryptow php

Kontakt na PW LUB GG

#16 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 10.04.2011 09:18


/*
* szString - String Przeszukiwany
* szSearchStr - String Szukany
* IgnoreCace - Jesli 1 wielkosc liter nie bedzie brana pod uwage
*
* Zwraca : Ilosc wystapien szukanego stringu w stringu przeszukiwanym
*/
stock counter_string(szString[], szSearchStr[], IgnoreCase = 0)
{
new iIlosc = 0;
for(new i = 0; i += 1 < strlen(szString); )
{
if((i = ((IgnoreCase == 1) ? containi(szString[i], szSearchStr) : contain(szString[i], szSearchStr))) != -1)
iIlosc ++;
else
break;
}
return iIlosc;
}

  • +
  • -
  • 1

#17 dram

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:277
  • Lokalizacja:xxxx
Offline

Napisano 10.04.2011 09:22

a w tej pętli(for) na końcu nie powinno być czasem i++?
  • +
  • -
  • 0
Co oferuje?

Pisanie pluginów amxx/modow itd
Skryptow php

Kontakt na PW LUB GG

#18 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 10.04.2011 09:27

Nie
  • +
  • -
  • 0




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

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