Yoko
http://forum.yoko.com.ua/

Splitting a string
http://forum.yoko.com.ua/viewtopic.php?f=3&t=12743
Page 1 of 1

Author:  Metafor [ 2007-11-10 03:35:57 ]
Post subject:  Splitting a string

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
....

Author:  Destruction [ 2007-11-10 03:43:57 ]
Post subject: 

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.

Author:  Metafor [ 2007-11-10 03:56:40 ]
Post subject: 

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

Author:  Grin [ 2007-11-10 12:59:29 ]
Post subject: 

И почему строчку в масв нельзя разложить?;)
Code:
for i=0 to strlen( string ) -1
логическая ошибка

Author:  Destruction [ 2007-11-10 15:57:38 ]
Post subject: 

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.

Author:  Grin [ 2007-11-11 01:53:11 ]
Post subject: 

так и так придется объявлять масив, в даном случаи это 1 строчка (инициализация не нужна)

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

Author:  Edred [ 2007-11-11 14:10:53 ]
Post subject: 

Мдя, народ, у вас совсем крыша едет. Строка и есть массив, ничего никуда перезасовывать не надо. Где-то в ФАКе об этом было... Вот:

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

Author:  Grin [ 2007-11-11 17:18:44 ]
Post subject: 

Edred речь идет о том что функция должна венуть масив слов...
Дест сказал что это не возможно, потом что это "проблемно". Ну и возник дискус... Не в тему ты в общем...

Author:  Destruction [ 2007-11-11 19:24:45 ]
Post subject: 

Grin wrote:
так и так придется объявлять масив, в даном случаи это 1 строчка (инициализация не нужна)

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

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

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

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

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

Author:  Edred [ 2007-11-13 12:05:31 ]
Post subject: 

Grin wrote:
Не в тему ты в общем...


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

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/