←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Pobieranie treści strony WWW

  • +
  • -
mas22 - zdjęcie mas22 05.08.2012

Witam. Chcę zrobić, aby plugin czytał ze strony www.xxxx.pl/xxxx.txt pierwszą linijkę tekstu, który jest na tej stronie i wyświetlał np. w konsoli, a drugą linijkę tekstu, zapisywał np. do pliku xxxx.log.
Czekam na odpowiedz.
Odpowiedz

  • +
  • -
mas22 - zdjęcie mas22 05.08.2012

Zrobiłem tak jak tam jest. Teraz tylko mam następujący problem...
public socketAnswer(){
	if (socket_change(g_Socket)) {
		new szData[1024]
		
		socket_recv(g_Socket, szData, charsmax(szData) )
		
		log_amx(szData);
		
		socket_close(g_Socket);
	}
}
log_amx(szData); - zapisuje do logów kod html ze strony, więc "szData" to jest kod html.
Tylko jak zrobić takie coś jak pisałem na porządku: "pierwszą linijkę tekstu, który jest na tej stronie i wyświetlał np. w konsoli, a drugą linijkę tekstu, zapisywał np. do pliku xxxx.log."

Jedyne co przychodzi mi do głowy to zrobić tak, że ten kod html zapisuje się do pliku xxx.txt, a następnie czyta z tego pliku daną linie. Pewnie jest jakaś inna możliwość, więc czekam na wasze wypowiedzi. ;)
Odpowiedz

  • +
  • -
mas22 - zdjęcie mas22 05.08.2012

Zrobiłem, że zapisuje ten kod html do pliku "File" i czyta z niego linie 2, ale wyskakuje mi taki błąd przy kompilacji: error 033: array must be indexed (variable "Line2")
for(new i=2;read_file(File, i, Line2, 128, iLen);i++)
   if(sprawdz == Line2)
	  test=1

Użytkownik mas22 edytował ten post 05.08.2012 20:21
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 05.08.2012

ylko jak zrobić takie coś jak pisałem na porządku: "pierwszą linijkę tekstu, który jest na tej stronie i wyświetlał np. w konsoli, a drugą linijkę tekstu, zapisywał np. do pliku xxxx.log."

tekst na stronie może być podzielony na linie poprzez różne sposoby ( br , divy itp. )
pokaż to stronę
Odpowiedz

  • +
  • -
mas22 - zdjęcie mas22 05.08.2012

Ta strona to plik .txt ;)
Tam będą 2 lub 3 linie tekstu i tyle.
Użytkownik mas22 edytował ten post 05.08.2012 20:57
Odpowiedz

  • +
  • -
mas22 - zdjęcie mas22 06.08.2012

No dobra...
To zrobiłem tak:
new out[3][64];
stock explode(szData, '^n', out, 3, 63)
{
   server_print("Out0: %s", out[0]);
   server_print("Out1: %s", out[1]);
   server_print("Out2: %s", out[2]);
}
Tu: "stock explode(szData, '^n', out, 3, 63);" są dwa błędy:
error 029: invalid expression, assumed zero
error 017: undefined symbol "explode"
Użytkownik mas22 edytował ten post 06.08.2012 12:45
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 06.08.2012

tak się nie używa funkcji
Odpowiedz

  • +
  • -
mas22 - zdjęcie mas22 06.08.2012

No to jak się używa?
Odpowiedz

  • +
  • -
mas22 - zdjęcie mas22 06.08.2012

No to zrobiłem takie coś:
new out[3][64];
stock explode(szData,"^n",out,3,64)
{
   new iDo = 0;
   new len = strlen(szData);
   new oLen = 0;
   do
   {
	  server_print("Out1: %s", out[0]);
	  server_print("Out2: %s", out[1]);
	  server_print("Out3: %s", out[2]);
   }
   while(oLen < len && iDo < 3)
}
Nadal jest błąd:

error 029: invalid expression, assumed zero
error 017: undefined symbol "explode"
Linia: stock explode(szData,"^n",out,3,64)

:( Help.....
Użytkownik mas22 edytował ten post 06.08.2012 17:38
Odpowiedz

  • +
  • -
mas22 - zdjęcie mas22 06.08.2012

Dobra udało mi się to ogarnąć. ;D Jak stworzyłem .inc to zadziałało...
Niema jakiegoś innego sposobu, żeby nie używać dodatkowego pliku .inc?

Gdyby dało się edytować to bym nie musiał pisać 3 postów, jeden pod drugim. :/
Użytkownik mas22 edytował ten post 06.08.2012 21:11
Odpowiedz

  • +
  • -
mas22 - zdjęcie mas22 07.08.2012

if(tresc == out[0])
    server_print("Tresc ta sama: %s", out[0]);
else server_print("Tresc inna: %s", out[0]);
Co tu jest źle?
W pierwszej linii jest błąd: error 033: array must be indexed (variable "out")
Odpowiedz