Форум
Написать нам
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: as-master  
парсинг строки
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
Почему не то?) по-моему я опустил эту часть
Code
Ищем символ o

заменив "/" на "о"..
Это же еще круче..

Кстати, я часто сталкивался с проблемой значка "/"

Добавлено (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
Всё с тобой ясно... Я не про басме вообще. А что ММВ глюкует не слабо.

Ушёл спать. Сами разбирайтесь :D


Жизнь оказалась не такой уж и забавной, как поначалу...
 
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)
Я не знаю почему, но без него скрипт работает.

Дай мне действительно работающий скрипт, и я поверю. А пока что я сочту это багом ММВ, одним из многих


Жизнь оказалась не такой уж и забавной, как поначалу...
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: