Русское сообщество по скриптингу

[INC] Easy delete string

Новые плагины для AMX Mod X, которые были добавлены в базу плагинов нашего форума. Плагины еще не утвеждены администратором/модератором.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

Данный раздел форума служит для добавления новых плагинов в базу нашего форума. После того, как администратор/модератор утвердит плагин, он будет перемещен в раздел "Утвежденные плагины".

Правила при добавлении новых плагинов:

1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. Обязательно выкладывайте исходник sma плагина. Запрещено выкладывать amxx файл.
4. Обязательно указывайте настоящих авторов плагина, если вы использовали чьи-то наработки или функции, указывайте их авторов в сообщении.
5. Необходимо заполнять детальную информацию о плагине (версию, настройки, используемые модули, список изменений и другую).

[INC] Easy delete string

Сообщение creator_52 » 03 мар 2011, 17:33

Авторы: creator_52
Версия: 5

Описание:
Плагин предназначен для упрощения работы с файлами (особенно если используются старые команды write_file, read_file и т.п.) путем добавления новой функции удаления строки.


Настройки:
Запустить инклуд, добавив в начало кода:
[pawn]#include <delete_string>                       [/pawn]
Вызов самой функции:
[pawn]native delete_string(s_file[],i_string) [/pawn]
  • s_file[] - файл, с которым будет производиться работа
  • i_string - номер строки в этом файле для удаления
Последний раз редактировалось creator_52 18 апр 2011, 13:15, всего редактировалось 5 раз(а).
Аватара пользователя
creator_52
 
Сообщения: 513
Зарегистрирован: 02 мар 2011, 15:45
Откуда: Нижний Новгород
Благодарил (а): 116 раз.
Поблагодарили: 207 раз.
Опыт программирования: Больше трех лет

Re: [INC] Easy delete string

Сообщение Ser_UFL » 04 сен 2011, 22:42

Код: Выделить всё
строка 1
строка 2
строка 3


Удали строку 2, чтобы вышло так:
Код: Выделить всё
строка 1
строка 3


а не так:
Код: Выделить всё
строка 1

строка 3
Запомните, всегда по жизни вас будут красить вежливость и спокойствие, а не наезды и дешевые понты ;)
Аватара пользователя
Ser_UFL
 
Сообщения: 975
Зарегистрирован: 22 авг 2009, 19:30
Откуда: Hell
Благодарил (а): 276 раз.
Поблагодарили: 380 раз.
Языки программирования: Counter-Strike 1.6:
WebMod-scripts, little Pawn.

Re: [INC] Easy delete string

Сообщение defa » 04 сен 2011, 22:45

Всё, понятен смысл :-)
Аватара пользователя
defa
 
Сообщения: 870
Зарегистрирован: 26 авг 2010, 18:22
Забанен
Благодарил (а): 34 раз.
Поблагодарили: 399 раз.

Re: [INC] Easy delete string

Сообщение ksv741 » 18 мар 2013, 21:27

Так в конце все равно остается пустая строка.
Например было 3 строки, мы "удаляем" вторую строку, получаем первую строку затем третью и затем пустую строку.
можно это изменить как-то?
Аватара пользователя
ksv741
 
Сообщения: 324
Зарегистрирован: 26 июл 2012, 10:30
Откуда: Магнитогорск
Благодарил (а): 17 раз.
Поблагодарили: 29 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: [INC] Easy delete string

Сообщение ksv741 » 25 мар 2013, 22:02

чтобы не создавало лишнюю строку
[pawn]
  1. #include <amxmodx>

  2.  

  3. static Array:g_a_data

  4.  

  5. public plugin_init()

  6. {

  7.         register_plugin("Delete string","5","creator_52")

  8.        

  9.         g_a_data=ArrayCreate(1024)

  10. }

  11.  

  12. public plugin_natives()

  13.         register_native("delete_string","delete_string")

  14.  

  15. public delete_string(i_plugin,i_params)

  16. {

  17.         if(i_params!=2)

  18.                 return PLUGIN_HANDLED

  19.        

  20.         new s_file[1024]

  21.        

  22.         get_string(1,s_file,1023)

  23.        

  24.         if(!file_exists(s_file)||!s_file[0])

  25.                 return PLUGIN_HANDLED

  26.        

  27.         new s_buffer[1024]

  28.        

  29.         new i_file=fopen(s_file,"rt")

  30.        

  31.         while(!feof(i_file))

  32.         {

  33.                 fgets(i_file,s_buffer,1023)

  34.                

  35.                 trim(s_buffer)

  36.                

  37.                 ArrayPushString(g_a_data,s_buffer)

  38.         }

  39.        

  40.         fclose(i_file)

  41.        

  42.         delete_file(s_file)

  43.        

  44.         new i_size=ArraySize(g_a_data)

  45.        

  46.         if(!i_size)

  47.                 return PLUGIN_HANDLED

  48.        

  49.         new i_line=get_param(2)

  50.        

  51.         if(i_line>i_size-1||i_line<0)

  52.                 return PLUGIN_HANDLED

  53.        

  54.         i_file=fopen(s_file,"wt")

  55.        

  56.         for(new a;a<i_size;a++)

  57.         {

  58.                 if(a==i_line)

  59.                         continue

  60.                

  61.                 ArrayGetString(g_a_data,a,s_buffer,1023)

  62.                

  63.                 if(a==(i_size-1))

  64.                         format(s_buffer,1023,"%s",s_buffer)

  65.                 else

  66.                         format(s_buffer,1023,"%s^n",s_buffer)

  67.                

  68.                 fputs(i_file,s_buffer)

  69.         }

  70.        

  71.         fclose(i_file)

  72.        

  73.         ArrayClear(g_a_data)

  74.        

  75.         return PLUGIN_CONTINUE

  76. }
[/pawn]
Аватара пользователя
ksv741
 
Сообщения: 324
Зарегистрирован: 26 июл 2012, 10:30
Откуда: Магнитогорск
Благодарил (а): 17 раз.
Поблагодарили: 29 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: [INC] Easy delete string

Сообщение Safety1st » 26 мар 2013, 01:33

Код: Выделить всё
if(a==(i_size-1))

Лучше бы было запомнить значение, чем на каждой строке его вычислять.
GoldSrc Gaming Community
Аватара пользователя
Safety1st
 
Сообщения: 1958
Зарегистрирован: 08 окт 2011, 05:41
Откуда: Moscow
Благодарил (а): 1690 раз.
Поблагодарили: 933 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life

Re: [INC] Easy delete string

Сообщение simplyDavchik » 11 мар 2018, 14:15

creator_52 писал(а):Авторы: creator_52
Версия: 5

Описание:
Плагин предназначен для упрощения работы с файлами (особенно если используются старые команды write_file, read_file и т.п.) путем добавления новой функции удаления строки.


Настройки:
Запустить инклуд, добавив в начало кода:
[pawn]#include <delete_string>                       [/pawn]
Вызов самой функции:
[pawn]native delete_string(s_file[],i_string) [/pawn]
  • s_file[] - файл, с которым будет производиться работа
  • i_string - номер строки в этом файле для удаления

Эм, а где инклюд?
Даже если цель не достижима, попробовать стоит.
Аватара пользователя
simplyDavchik
 
Сообщения: 132
Зарегистрирован: 08 апр 2017, 23:28
Откуда: Латвия
Благодарил (а): 15 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Java
C++
C#
Pawn

Пред.

Вернуться в Добавленные новые плагины

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4