Odczyt z pliku z "argumentami"
dram
05.04.2011
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.
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.
Knopers
05.04.2011
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 ?
dram
05.04.2011
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
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
Knopers
05.04.2011
Tak czy inaczej musisz pisać własnego parsera a to jak on będzie działał zależy tylko od tego jak go "wykodzisz"
dram
05.04.2011
No ale jak pobrać ilość ","
Jak pobrać w których miejscach się one znajdują?
Jak pobrać w których miejscach się one znajdują?
Knopers
05.04.2011
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
dram
05.04.2011
Mhm no raczej nie...
A jak podzielić to wszystko PARSEM, tak aby była możliwość taka że jest zmienna liczba argumentów ?
A jak podzielić to wszystko PARSEM, tak aby była możliwość taka że jest zmienna liczba argumentów ?
Knopers
05.04.2011
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.
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.
G[o]Q
05.04.2011
jesli chodzi ci o odczyt cos na wzor cvarow to mozesz zrobic
i tak :
i potem tylko funkcje sprawdzajaca czy w stringu znajduje sie ciag #$# jesli tak to wpisana jest liczba jesli nie to wpisany jest string
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
dram
06.04.2011
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.
Powiedzmy mam cos takiego new szSTRING[40] = "Ala Ma Kota"
I zwraca mi 11.. Pozdrawiam.
dram
06.04.2011
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
Bądź np zacząć zapisywać tekst od 12 znaka do końca.
Użytkownik dram edytował ten post 09.04.2011 23:14
Knopers
10.04.2011
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
dram
10.04.2011
Okej a ostatnia rzecz:) (mam nadzieje)
Jak policzyć w danym stringu ilość danego znaku?
Np. "Ala ma kota" liczymy a
zwraca 4
Jak policzyć w danym stringu ilość danego znaku?
Np. "Ala ma kota" liczymy a
zwraca 4
Knopers
10.04.2011
/*
* 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;
}