Yoko

All sides of Injection
It is currently 2025-12-08 16:08:02

All times are UTC+02:00




Post new topic  Reply to topic  [ 10 posts ] 
Author Message
 Post subject: Splitting a string
PostPosted: 2007-11-10 03:35:57 
Offline

Joined: 2006-02-17 14:16:10
Posts: 6
Hello all,
First of all, is it possible to split a string into an array ?
It's because I'm trying to extract X,Y from:
- button <randomX> <randomY> 2151 2150 1 0 2

... But I'm stuck, if anyone could help me. I'd appreciate !

Code:
....
var line = ""
var x = ""
var y = ""
var a = 0

line = uo.LastGump('command', i)
if left(line, 6) == "button" then
  uo.print("Button found... !")
  ## Trying to extract X value
  a = a + 7
  while NOT line[a] == " "
    uo.print("Number: "+line[a])
    ## This part is not working...
    x = str(x + line[a])
    a = a + 1
end if
....


Top
   
 Post subject:
PostPosted: 2007-11-10 03:43:57 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Possible, but not into array.

Function:
Code:
; explode( string string, string pattern, number num ) 
; Destruction
Sub explode( string, pattern, num )
var i, counter = 0, entry = 0
for i=0 to strlen( string ) -1
   if mid( string, i, strlen( pattern ) )  == pattern then
      counter = counter + 1
      if num == counter-1 then
         return mid( string, entry, i-entry )
      endif
      entry = i + 1
   endif
next
if entry == 0 then
   return false
endif
return mid( string, entry, strlen(string)-entry )
endsub

Example:
Code:
var str = "button <randomX> <randomY> 2151 2150 1 0 2"
uo.print( explode( str, " ", 0 ) )
uo.print( explode( str, " ", 1 ) )
uo.print( explode( str, " ", 2 ) )
uo.print( explode( str, " ", 3 ) )
uo.print( explode( str, " ", 4 ) )
uo.print( explode( str, " ", 5 ) )
uo.print( explode( str, " ", 6 ) )
uo.print( explode( str, " ", 7 ) )


Also i recommend u to see functions in this topic: viewtopic.php?t=7379 This topic contains many simple scripts.

Sorry for my clumsy English.

_________________
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Skype: d119060


Top
   
 Post subject:
PostPosted: 2007-11-10 03:56:40 
Offline

Joined: 2006-02-17 14:16:10
Posts: 6
Thank you very much, your english is good. :-)


Top
   
 Post subject:
PostPosted: 2007-11-10 12:59:29 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
И почему строчку в масв нельзя разложить?;)
Code:
for i=0 to strlen( string ) -1
логическая ошибка


Top
   
 Post subject:
PostPosted: 2007-11-10 15:57:38 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Grin wrote:
И почему строчку в масв нельзя разложить?;)
Code:
for i=0 to strlen( string ) -1
логическая ошибка

Неудобно строчку в массив.. Придётся массив в основной функции объявлять.. Не юзабельно вобщем.

А насчёт ошибки - не понял, поясни..

Metafor wrote:
Thank you very much, your english is good. :-)

Thank you too. May be you right.

_________________
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Skype: d119060


Top
   
 Post subject:
PostPosted: 2007-11-11 01:53:11 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
так и так придется объявлять масив, в даном случаи это 1 строчка (инициализация не нужна)

поповоду ошибки простой пример, утебя есть строка где разделитель стостоит из более одного символа допустим " : "
тоесть разделитель ашь из 3-х символов, имем строку "1 : 2 : 3"
есть ли смысл в опирации if mid("1 : 2 : 3", 6, 3) == " : " then ?
правельно нет;)


Top
   
 Post subject:
PostPosted: 2007-11-11 14:10:53 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Мдя, народ, у вас совсем крыша едет. Строка и есть массив, ничего никуда перезасовывать не надо. Где-то в ФАКе об этом было... Вот:

Quote:
Обращение к отдельным буквам в строке - так же, как к эл-там массива:
переменная[номер_буквы]. Номер - от 0, в случае выхода за конец строки - ошибка.

_________________
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2007-11-11 17:18:44 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
Edred речь идет о том что функция должна венуть масив слов...
Дест сказал что это не возможно, потом что это "проблемно". Ну и возник дискус... Не в тему ты в общем...


Top
   
 Post subject:
PostPosted: 2007-11-11 19:24:45 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Grin wrote:
так и так придется объявлять масив, в даном случаи это 1 строчка (инициализация не нужна)

поповоду ошибки простой пример, утебя есть строка где разделитель стостоит из более одного символа допустим " : "
тоесть разделитель ашь из 3-х символов, имем строку "1 : 2 : 3"
есть ли смысл в опирации if mid("1 : 2 : 3", 6, 3) == " : " then ?
правельно нет;)

Это не логическая ошибка, это первоначально задумывалось, что разделитель - 1 буква..

Нужно наверное подправить.. Лениво жутко, я эту "ошибку" уже полгода созерацаю ;)
Grin wrote:
Edred речь идет о том что функция должна венуть масив слов...
Дест сказал что это не возможно, потом что это "проблемно". Ну и возник дискус... Не в тему ты в общем...

Я сказал, что это не совсем юзабельно..

Вобщем прекратим дискуссию, я знаю, что я неправ, но ни в коем случае с этим не соглашусь :roll:

_________________
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Skype: d119060


Top
   
 Post subject:
PostPosted: 2007-11-13 12:05:31 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Grin wrote:
Не в тему ты в общем...


Вполне возможно. Лень было все читать... :oops:

_________________
Ни один скрипт не работает? Пора обновить Инжект...

Все работает, но хочется большего? Пора переходить на стелс...


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 10 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited