парсинг строки
|
|
max3d | Дата: Воскресенье, 12 Июля 2009, 20:58 | Сообщение # 1 |
Любопытный
Группа: Проверенные
Сообщений: 57
Репутация: 0
Награды: 0
Статус: Offline
| вобщем надо чтоб отсюда Code http://video.sibnet.ru/albXXXX/videoXXXX/ (где ХХХХ могут быть любые цифры в любом количестве) Code http://video.sibnet.ru/alb5017/video26193/ откусить число после слова video p.s. вернусь дней через пять
|
|
| |
YURIY | Дата: Воскресенье, 12 Июля 2009, 21:01 | Сообщение # 2 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Не вижу кода попыток со стороны автора темы. Сообщение больше похоже на заказ, а мы на этом форуме помогаем. Всё делается элементарно через строковые функции.
Вечная память Андрею Сергееву!
|
|
| |
Sower | Дата: Понедельник, 13 Июля 2009, 06:42 | Сообщение # 3 |
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
| ошень просто Code str$='http://video.sibnet.ru/alb5017/video26193/' chislo=VAL(str$) В результате в переменной chislo будет ваше число, в данном случае 26193. И больше не нужно задавать таких глупых вопросов,всё есть в русском хелпе
|
|
| |
EagleSH | Дата: Понедельник, 13 Июля 2009, 10:09 | Сообщение # 4 |
Поднаторевший
Группа: Проверенные
Сообщений: 106
Репутация: 0
Награды: 0
Статус: Offline
| Code str$='http://video.sibnet.ru/alb5017/video26193/' chislo=VAL(str$) Grand, в результате не будет того, что нужно автору через этот код. это через 2 такие строки не делается.
Сообщение отредактировал EagleSH - Понедельник, 13 Июля 2009, 10:10 |
|
| |
basme | Дата: Понедельник, 13 Июля 2009, 11:23 | Сообщение # 5 |
MMB Club
Группа: Проверенные
Сообщений: 358
Репутация: 5
Награды: 2
Статус: Offline
| GetArrayItem() по делимитеру / Ищем символ o Дёргаем кусок строки со следующего символа Всё
|
|
| |
Sower | Дата: Понедельник, 13 Июля 2009, 12:13 | Сообщение # 6 |
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
| Quote (EagleSH) это через 2 такие строки не делается. Что значит... Всё работатет, если вы не знали функция VAL преобразует строку в число, т.е. преобразует тип, если в строке есть число, то оно преобразуется и будет присвоено числовой переменной, если в строке буквенные символы, то они отбросятся, т.к. они не являются числами, надеюсь ясно изложил? Почитайте хелп, незнаю есть там или нет этого, но я так делал и так не только в ммб, но и в любом языке, например в Паскале или Си.
|
|
| |
basme | Дата: Понедельник, 13 Июля 2009, 14:26 | Сообщение # 7 |
MMB Club
Группа: Проверенные
Сообщений: 358
Репутация: 5
Награды: 2
Статус: Offline
| Так там два набора чисел - после alb и после video. А нужен один из них.
|
|
| |
Sower | Дата: Понедельник, 13 Июля 2009, 15:40 | Сообщение # 8 |
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
| Quote (basme) Так там два набора чисел - после alb и после video. А нужен один из них. А ну сори, незаметил
Сообщение отредактировал Grand - Понедельник, 13 Июля 2009, 18:48 |
|
| |
EagleSH | Дата: Вторник, 14 Июля 2009, 09:50 | Сообщение # 9 |
Поднаторевший
Группа: Проверенные
Сообщений: 106
Репутация: 0
Награды: 0
Статус: Offline
| Grand, знаю я что такое VAL, и сказал я о конкретном Вашем примере, который не работает. не более.
Сообщение отредактировал EagleSH - Вторник, 14 Июля 2009, 09:51 |
|
| |
max3d | Дата: Пятница, 17 Июля 2009, 20:49 | Сообщение # 10 |
Любопытный
Группа: Проверенные
Сообщений: 57
Репутация: 0
Награды: 0
Статус: Offline
| Code string$=EditBox$ string2$=StrDel(string$,1,23) substring$='video' RetVal=POS(substring$, string2$) string$=StrDel(string2$,1,RetVal) FromString$='/' ToString$='' RetString$=StrChange(string$,FromString$,ToString$) number$=StrDel(RetString$,1,4) вот.. мне кажется что этот скрипт громоздковат=)
|
|
| |
moneycan | Дата: Пятница, 17 Июля 2009, 22:40 | Сообщение # 11 |
Новый участник
Группа: Пользователи
Сообщений: 24
Репутация: 0
Награды: 0
Статус: Offline
| Code add$='http://video.sibnet.ru/alb5017/video26193/' *** addZ$=StrCopy(add$,31,100) A=POS('/video',add$) B=LEN(addZ$) Res=VAL(StrCopy(addZ$,A,B))
Сообщение отредактировал moneycan - Пятница, 17 Июля 2009, 22:47 |
|
| |
toizy | Дата: Пятница, 17 Июля 2009, 22:59 | Сообщение # 12 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| вариант универсальный Code url$ = 'http://video.sibnet.ru/alb5017/video26193/' Result$ = '' For i = LEN(url$) - 1 To 1 s$ = StrGet(url$, i) char = ORD(s$) If (char > 47 & char < 58) Then Result$ = s$ + Result$ Else Break() End Next i Message("","Result$")
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |
moneycan | Дата: Пятница, 17 Июля 2009, 23:07 | Сообщение # 13 |
Новый участник
Группа: Пользователи
Сообщений: 24
Репутация: 0
Награды: 0
Статус: Offline
| Я думаю для такой задачи циклы вообще не использовать.. Это было бы актуально если ссылка менялась до неузнаваемости, и нужно было бы что-то высчитывать)
|
|
| |
toizy | Дата: Пятница, 17 Июля 2009, 23:11 | Сообщение # 14 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| Что не так с циклами? Одно разумное объяснение...
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |
moneycan | Дата: Пятница, 17 Июля 2009, 23:14 | Сообщение # 15 |
Новый участник
Группа: Пользователи
Сообщений: 24
Репутация: 0
Награды: 0
Статус: Offline
| Я не разглядел.. Quote вариант универсальный пойду я лучше посплю Циклы в ммб тормозные больно
Сообщение отредактировал moneycan - Пятница, 17 Июля 2009, 23:15 |
|
| |
toizy | Дата: Пятница, 17 Июля 2009, 23:17 | Сообщение # 16 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| знаем, знаем... но 5 итераций не сильно нас затормозит... Вот щас пытаюсь сделать как БАСМЕ рекомендует что-то не выходит. А идея хороша
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |
moneycan | Дата: Пятница, 17 Июля 2009, 23:28 | Сообщение # 17 |
Новый участник
Группа: Пользователи
Сообщений: 24
Репутация: 0
Награды: 0
Статус: Offline
| Вот наверное это Code add$='http://video.sibnet.ru/alb5017/video26193/' *** addZ$=add$+'o' addZ$=GetArrayItem(addZ$,'o',3) Res=VAL(addZ$)
|
|
| |
toizy | Дата: Пятница, 17 Июля 2009, 23:36 | Сообщение # 18 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| Нет, не то. Почему-то ММВ е воспринимает делимитером '/'... Печально.
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |
moneycan | Дата: Пятница, 17 Июля 2009, 23:43 | Сообщение # 19 |
Новый участник
Группа: Пользователи
Сообщений: 24
Репутация: 0
Награды: 0
Статус: Offline
| Почему не то?) по-моему я опустил эту часть заменив "/" на "о".. Это же еще круче.. Кстати, я часто сталкивался с проблемой значка "/" Добавлено (17 Июль 2009, 23:43) --------------------------------------------- попробуй '/' заменить на CHR(47)
|
|
| |
toizy | Дата: Пятница, 17 Июля 2009, 23:52 | Сообщение # 20 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| Quote (moneycan) заменив "/" на "о".. Это же еще круче.. Ты прицепился к линку, а этого делать нельзя. Если только хочешь универсальность
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |
moneycan | Дата: Пятница, 17 Июля 2009, 23:55 | Сообщение # 21 |
Новый участник
Группа: Пользователи
Сообщений: 24
Репутация: 0
Награды: 0
Статус: Offline
| Вот как предложил basme По-моему это ближе всего к его словам)) Code add$='http://video.sibnet.ru/alb5017/video26193/' *** addZ$=StrChange(add$,'//','/') addZ$=GetArrayItem(addZ$,'/',4) pos=POS('o',addZ$)+1 len=LEN(addZ$)-pos+1 addZ$=StrCopy(addZ$,pos,len) Res=VAL(addZ$) Message("","Res") проблема была не в '/', а в '//'...
Сообщение отредактировал moneycan - Суббота, 18 Июля 2009, 00:37 |
|
| |
toizy | Дата: Суббота, 18 Июля 2009, 00:07 | Сообщение # 22 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| Да нет... даблслеши ни при чём. Вот эта конструкция наотрез отказывается работать: Code url$ = 'http://video.sibnet.ru/alb5017/video26193/' s$ = GetArrayItem(url$, '/', 3) Хотя должна возвращать video.sibnet.ru. Не пойму в чём дело. А идея была вот какая. Дабы укоротить код и выкусить строго последний фрагмент между слешами, использовать GetArayNum в связке в GetArrayItem. Т.е. примерно так: n = GetArrayNum(...) s$ = GetArayItem(..., ..., n) в s$ получаем последний кусок. Но... не работает...
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |
moneycan | Дата: Суббота, 18 Июля 2009, 00:14 | Сообщение # 23 |
Новый участник
Группа: Пользователи
Сообщений: 24
Репутация: 0
Награды: 0
Статус: Offline
| ААааа!!))) нутак ты даблслэш убери и она будет работать!!))) Добавлено (18 Июль 2009, 00:14) --------------------------------------------- ты же видишь что я сделал? я даблслзш заменил на слэш..:)
Сообщение отредактировал moneycan - Суббота, 18 Июля 2009, 00:14 |
|
| |
toizy | Дата: Суббота, 18 Июля 2009, 00:15 | Сообщение # 24 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| Нет, ты вот такой код попробуй Code url$ = 'http:/video.sibnet.ru/alb5017/video26193/' s$ = GetArrayItem(url$, '/', 3) Даблслеша ни одного, однако же всё равно не работает.
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |
moneycan | Дата: Суббота, 18 Июля 2009, 00:16 | Сообщение # 25 |
Новый участник
Группа: Пользователи
Сообщений: 24
Репутация: 0
Награды: 0
Статус: Offline
| и вообще прочти внимательно что я написал. я же говорю слово в слово что basme сказал:)
|
|
| |
toizy | Дата: Суббота, 18 Июля 2009, 00:18 | Сообщение # 26 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| Всё с тобой ясно... Я не про басме вообще. А что ММВ глюкует не слабо. Ушёл спать. Сами разбирайтесь
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |
moneycan | Дата: Суббота, 18 Июля 2009, 00:23 | Сообщение # 27 |
Новый участник
Группа: Пользователи
Сообщений: 24
Репутация: 0
Награды: 0
Статус: Offline
| Во-первых удали пробел перед '/' Во-вторых не 3, а 4 (аштитипи тоже итем)Добавлено (18 Июль 2009, 00:23) --------------------------------------------- да не глюки, а синтексис)))))) у нас вообще уже полчетвертого))
|
|
| |
toizy | Дата: Суббота, 18 Июля 2009, 09:58 | Сообщение # 28 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| Quote (moneycan) Во-первых удали пробел перед '/' А какой пробел? Нету там его... Quote (moneycan) Во-вторых не 3, а 4 (аштитипи тоже итем) Без разницы, мне нужен не конкретный элемент, а вообще хоть что-нибудь... Иначе. Вот код: Code url$ = 'http://video.sibnet.ru/alb5017/video26193/' n = GetArrayNum(url$, /) Result$ = GetArrayItem(url$, /, n) Result$ = StrDel(Result$, 1, 5) Message("","Result$") Почему он не работает? Если у нас нет даблслеша, всё ок. Но как только он появляется, GetArrayItem не отрабатывает.
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |
moneycan | Дата: Суббота, 18 Июля 2009, 10:21 | Сообщение # 29 |
Новый участник
Группа: Пользователи
Сообщений: 24
Репутация: 0
Награды: 0
Статус: Offline
| Quote (toizy) А какой пробел? Code url$ = 'http://video.sibnet.ru/alb5017/video26193/' s$ = GetArrayItem(url$,*Вот тут!*'/', 3) Я не знаю почему, но без него скрипт работает. Quote (toizy) Почему он не работает? Если у нас нет даблслеша, всё ок. Но как только он появляется, GetArrayItem не отрабатывает. Я могу предположить, что ммб не находить итем2, обижается и перестает рабоатеть..:)
|
|
| |
toizy | Дата: Суббота, 18 Июля 2009, 14:01 | Сообщение # 30 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| Quote (moneycan) s$ = GetArrayItem(url$,*Вот тут!*'/', 3) Пробелы после запятых не влияют на работу, это факт, проверенный временем. Quote (moneycan) Я не знаю почему, но без него скрипт работает. Дай мне действительно работающий скрипт, и я поверю. А пока что я сочту это багом ММВ, одним из многих
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |