[ROZWIĄZANE] Wyszukiwanie w pliku
karololo
04.06.2012
Cześć, Jak mogę zrobić coś takiego, że mam jakiś plik tekstowy a w nim np. takie dane:
------------
Maciek
Michał
Karol
Grzesiek
Kuba
------------
I teraz mam takie pytania:
1) Jak sprawdzić czy w tym pliku występuje fraza "Kuba"
2) Wyczyścić całkowicie linię z frazą "Grzesiek" (najpierw wyszukujemy, jak jest to czyścimy)
Pozdrawiam
------------
Maciek
Michał
Karol
Grzesiek
Kuba
------------
I teraz mam takie pytania:
1) Jak sprawdzić czy w tym pliku występuje fraza "Kuba"
2) Wyczyścić całkowicie linię z frazą "Grzesiek" (najpierw wyszukujemy, jak jest to czyścimy)
Pozdrawiam
G[o]Q
04.06.2012
pobierasz po kolei linie z pliku i sprawdzasz czy zawiera dany text np uzywając contain/containi
jesli chcesz usunąć to mozesz przepisać wszystko do nowego pliku oprócz danej linii i potem nowym plikiem zastąpić stary
http://amxx.pl/dokumentacja/s28/file
jesli chcesz usunąć to mozesz przepisać wszystko do nowego pliku oprócz danej linii i potem nowym plikiem zastąpić stary
http://amxx.pl/dokumentacja/s28/file
karololo
04.06.2012
Tak pawn. Mógłbym prosić o jakiś przykład? Bez tego raczej sobie nie poradzę ;/
Edited by Poprostu Maniac, 04.06.2012 16:18.
Gość_21977_* 04.06.2012
#include <amxmodx>Wadą mojego rozwiązania mogą być puste linie na końcu pliku.
#include <amxmisc>
#include <file>
public plugin_init(){
new szLine[32], iLen, minus=0, bool:Kuba=false;
for(new i=0;read_file("plik.txt", i, szLine, 31, iLen);++i){
if(equal(szLine,"Kuba")){
Kuba=true;
}
if(minus){
write_file("plik.txt",szLine, i-minus);
}
if(equal(szLine,"Grzesiek")){
write_file("plik.txt","", i);
++minus;
}
if(minus){
write_file("plik.txt","", i);
}
}
log_amx(Kuba?"Znaleziono Kube":"Nie znaleziono Kuby");
}
Jeśli ich nie chcesz, zastosuj rozwiązanie G[o]Q.
Podałem jedynie przykład.
edit. Poprawiłem kolejność ifów w kodzie.
Edited by benio101, 04.06.2012 16:38.
karololo
04.06.2012
Puste linie czyli masz na myśli pozostałości po wcześniejszych wpisach tak? To mi nie będzie przeszkadzało
Edited by Poprostu Maniac, 04.06.2012 16:29.
Edited by Poprostu Maniac, 04.06.2012 16:29.
Gość_21977_* 04.06.2012
Dodałem jeszcze jednego ifa w kodzie powyżej.
Ww. przykład z pliku
Do tego dodaje w logach linijkę typu:
edit. Kod wyżej podałem jedynie jako przykład.
Jest on nieoptymalny i produkuje puste linie na końcu.
Nie polecam Ci go używać, poświęć 5 minut i napisz kod optymalny.
RTFM: read_file - Dokumentacja AMXX.pl (tam też znajdziesz opisy kolejnych, przydatnych funkcji, wraz z przykładami)
Ww. przykład z pliku
------------ Maciek Michał Karol Grzesiek Kuba ------------tworzy plik
------------ Maciek Michał Karol Kuba ------------(z pustą linią na końcu).
Do tego dodaje w logach linijkę typu:
L 06/04/2012 - 17:32:46: [Untitled.amxx] Znaleziono KubeProblem polega na tym, że pustych linii na końcu będzie Ci ciągle przybywać, więc proponuję Ci zastosować rozwiązanie G[o]Q.
edit. Kod wyżej podałem jedynie jako przykład.
Jest on nieoptymalny i produkuje puste linie na końcu.
Nie polecam Ci go używać, poświęć 5 minut i napisz kod optymalny.
RTFM: read_file - Dokumentacja AMXX.pl (tam też znajdziesz opisy kolejnych, przydatnych funkcji, wraz z przykładami)
Ojciec Dyrektor
06.06.2012
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL