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

Как читать строку задом наперед?

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

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

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Как читать строку задом наперед?

Сообщение Endi » 17 мар 2010, 14:57

У меня есть строка "/papka1/papka2/upload.php", нужно читать с зади до первой "/" и вырезать, чтобы стало "/papka1/papka2/", и при этом не известно сколько там папок.
Как это сделать быстро и безболезненно, а то я что-то совсем оламерел? :)
Аватара пользователя
Endi
 
Сообщения: 95
Зарегистрирован: 25 авг 2009, 11:26
Благодарил (а): 13 раз.
Поблагодарили: 20 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source

Re: Как читать строку задом наперед?

Сообщение Ser_UFL » 17 мар 2010, 15:12

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

Re: Как читать строку задом наперед?

Сообщение Fedcomp » 17 мар 2010, 15:15

Код: Выделить всё
new i
for(i=strlen(stroka);i>0;i--){
    if equal(stroka[i], '/'){
        stroka[i+1]= 0
        break
    
}
}
 

наверно как то так
вечно у меня какие то чудовищные решения ....
через i можно потом разбить строку если есть необходимость. Но по идее там где ноль и так должно считаться концом строки
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Как читать строку задом наперед?

Сообщение Endi » 17 мар 2010, 15:50

Код: Выделить всё
new len strlen(stroka)
while(
len){
    if(
containi(stroka[len],"/") != -1){
        ++
len
        copy
(stroka,len,stroka)
        break
    }
    --
len
}
 

Вот метод тоже через попу, но работает :)
Аватара пользователя
Endi
 
Сообщения: 95
Зарегистрирован: 25 авг 2009, 11:26
Благодарил (а): 13 раз.
Поблагодарили: 20 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source

Re: Как читать строку задом наперед?

Сообщение ViP.Predator » 17 мар 2010, 17:35

М.б.?
[pawn]    new len = strlen( stroka )
    while( stroka[len] != ' / ' && stroka[len] != ' \ ' && len--){ stroka[len + 1] = 0; } [/pawn]


Ессно значения \ и / в апострофах без пробелов
Человеку свойственно ошибаться, и он пользуется этим свойством часто и с удовольствием!
Аватара пользователя
ViP.Predator
 
Сообщения: 115
Зарегистрирован: 14 окт 2009, 15:59
Откуда: Тверь
Благодарил (а): 1 раз.
Поблагодарили: 99 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6


Вернуться в Скриптинг

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

Сейчас этот форум просматривают: Bing [Bot] и гости: 12