←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] Wyszukiwanie w pliku

Locked

  • +
  • -
karololo's Photo 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
Quote

  • +
  • -
ParadisO's Photo ParadisO 04.06.2012

w jakim języku programowania tego potrzebujesz ?
Quote

Gość_21977_* 04.06.2012

Posted Image
Obstawiam Pawn.
Quote

  • +
  • -
G[o]Q's Photo 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
Quote

  • +
  • -
karololo's Photo karololo 04.06.2012

Jasne, że tak.

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.
Quote

Gość_21977_* 04.06.2012

#include <amxmodx>
#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");
}
Wadą mojego rozwiązania mogą być puste linie na końcu pliku.
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.
Quote

  • +
  • -
karololo's Photo 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.
Quote

Gość_21977_* 04.06.2012

Dodałem jeszcze jednego ifa w kodzie powyżej.

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 Kube
Problem 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)
Quote

  • +
  • -
karololo's Photo karololo 04.06.2012

Dobrze, dzięki za pomoc. Mam już teraz pewien obraz jak to wygląda.
Quote

  • +
  • -
Ojciec Dyrektor's Photo 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, Posted Image raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Quote
Locked