AMX MOD X
Среда, 23.09.2020, 19:36:43



Приветствую Вас Гость | RSS
[ Главная ] [ Люди, помогите пожалуйста, как используя команду read_file() - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Люди, помогите пожалуйста, как используя команду read_file() (сделать что бы при встрече нужного знака не читал строку ?)
Люди, помогите пожалуйста, как используя команду read_file()
PAHANCSДата: Вторник, 10.03.2009, 09:21:34 | Сообщение # 1
Полковник
Группа: Пользователи
Сообщений: 183
Репутация: 4
Статус: Не в сети
В общем я ни как не могу понять принцип работы этой команды , в смысле какой аргумент за что отвечает и как их можно использовать и в каких случаях ? :(

Но мне бы хотябы понять как сделать что бы при встрече нужного знака в начале строки не читал строку
полностью ? :( , а с остальным попробую как ни-будь разобраться по другому плагину.

Помогите пожалуйста ! :(

команда:

Code

/* Reads line from file. Returns index of next line or 0 when end of file is reached. */
native read_file(const file[],line,text[],len,&txtlen);



PAHANCS
 
dArkДата: Вторник, 10.03.2009, 11:54:23 | Сообщение # 2
Подполковник
Группа: Cупер-модеры
Сообщений: 126
Репутация: 1
Статус: Не в сети
Code

new A = 0
   
  if(file_exists(NickFilePath) && file_size(NickFilePath, 1))
  {  
   Ucount = file_size(NickFilePath, 1) - 1
    
   if(Ucount == 1)
   {
    read_file(NickFilePath, 0, Unick[0], 30, A)
    if(equali(Unick[0], ""))    Ucount = 0
   }
   else
    for(new I = 0; I < Ucount; ++I)   
     read_file(NickFilePath, I, Unick[I], 30, A)  
  }

Это пример, первый параметр, имя файла, второй, номер строки в нём, третий, буффер куда будет считываться строка, четвёртый, длинна этого буффера, пятый, судя по тому что передаётся по ссылке, скорее всего число реально считаных символов.

Сообщение отредактировал dArk - Вторник, 10.03.2009, 11:55:23
 
PAHANCSДата: Вторник, 10.03.2009, 12:15:00 | Сообщение # 3
Полковник
Группа: Пользователи
Сообщений: 183
Репутация: 4
Статус: Не в сети
Спасибо Большое за Помощь !!! :) Теперь все понял ! :)

PAHANCS
 
ZefirДата: Вторник, 10.03.2009, 12:36:23 | Сообщение # 4
Майор
Группа: Пользователи
Сообщений: 83
Репутация: 5
Статус: Не в сети
dArk, все три вызова функций анализа файла не стоило делать, достаточно одной. И проверка внутри похоже лишняя, если строка одна, то одна и прочитаеться...

PAHANCS, никто не читает сначала один символ потом всю строку. Обычно ее сразу читают всю, а потом анализируют первый символ и пропускают при совпадении.

Code

new readcount, readline, buffer[128]

// если размер файла 0, то он нам не нужен, а если файл не существует функция вернет -1
if (file_size(filename) > 0)

     // функция возвращает номер следующей строки, и 0 если достигнут конец файла.
     // поэтому искуственное создание иттератора не нужно
     while (readline = read_file(filename, readline, buffer, charsmax(buffer), readcount))
     {

         // проверка количества реально прочитанных символов
         // и первого символа на совпадение с ";". можно использовать любой символ или последовательность.
         // но тогда последний параметра должен указывать на длину последовательности.
         if (!readcount || equal(buffer, ";", 1))
           continue

         // здесь делаем что нужно со строкой buffer в которую было записано readcount  символов.
         ....
     }


Чтобы правильно задать вопрос, нужно знать больше половины ответа...
Cerberus(Цербер) - начато публичное тестирование
Энциклопедия Counter-Strike


Сообщение отредактировал Zefir - Вторник, 10.03.2009, 13:59:44
 
PAHANCSДата: Вторник, 10.03.2009, 13:13:31 | Сообщение # 5
Полковник
Группа: Пользователи
Сообщений: 183
Репутация: 4
Статус: Не в сети
Zefir, Спасибо Большое за Помощь !!! :) Теперь еще больше понял ! :)

PAHANCS
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Люди, помогите пожалуйста, как используя команду read_file() (сделать что бы при встрече нужного знака не читал строку ?)
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2020