Yoko

All sides of Injection
It is currently 2026-02-18 07:41:42

All times are UTC+02:00




Post new topic  Reply to topic  [ 6 posts ] 
Author Message
PostPosted: 2005-01-19 00:39:56 
Offline

Joined: 2004-08-31 08:45:10
Posts: 4
например есть какое-то событие.
в журнале появляется сторока "text 12987 text"
Как можно вытащить это число в переменную?
можно ли откинуть не нужные буквы из строки и получить число?


Top
   
 Post subject:
PostPosted: 2005-01-19 02:44:21 
Offline
Junior Expert
User avatar

Joined: 2004-11-13 00:43:55
Posts: 474
Location: Киберзадроцк
Команда Mid(строка, позиция, число букв) - позиция считается от 0


Top
   
 Post subject:
PostPosted: 2005-01-19 10:20:43 
Offline
Expert!
User avatar

Joined: 2004-07-04 00:14:58
Posts: 1284
666Man666 wrote:
Команда Mid(строка, позиция, число букв) - позиция считается от 0
ну и Val - не забываем ;)


Top
   
 Post subject:
PostPosted: 2005-01-19 14:39:09 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Code:
Sub GetWord( st, nom )
; (c) Edred
; Возвращает слово из строки str за номером num
; если такого слова нет - возвращаем ''
;
; Разделителем слов считаем пробел. Несколько пробелов подряд считаются за один.
; Функция сделана без рекурсии специально для считывания слов из сверхдлинных строк!
;
   VAR tmpst
   VAR i, dlin, kol, start
   dlin = len( st )
   kol = 0
   start = 0
   For i=0 To dlin - 1
      If mid( st, i, 1 ) == ' ' OR i == dlin - 1 Then
         kol = kol + 1
         If kol == nom Then
            ; это первый пробел после нужного нам слова
            tmpst = mid( st, start, i - start )
            return tmpst
         Else
            While mid( st, i, 1 ) == ' '
               i = i + 1
            Wend
            If kol == nom - 1 Then
               start = i
            Endif
         Endif
      Endif
   Next
   tmpst = ''
   return tmpst
endsub


Top
   
 Post subject:
PostPosted: 2005-02-03 15:31:31 
Offline
Junior Expert
User avatar

Joined: 2004-04-10 11:37:18
Posts: 30
А вот мой вариант
Code:
; Получение слова под номером num из строки str, возвращает слово если все нормально, -1 если ошибка.
sub GetWord(num,str)
if IsNumber(num) <> 1 or IsString(str) <> 1 then
return -1
endif
str=Trim(str)
str=str+' '
var cnt=0,ind=0,inds=0,wordr=''
while ind < strlen(str)
if str[ind] == ' ' then
wordr=trim(Mid(str,inds,ind-inds))
if wordr <> '' then
cnt=cnt+1
if cnt == num then
return wordr
endif
endif
inds=ind
endif
ind=ind+1
wend
return -1
end sub

; Ищет заданное слово word в строке str, возвращает 1 если найдено, 0 если не найдено, -1 если ошибка.
sub FindWord(word,str)
if IsString(word) <> 1 or IsString(str) <> 1 then
return -1
endif
str=Trim(str)
word=Trim(word)
str=str+' '
var ind=0,inds=0,wordr=''
while ind < strlen(str)
if str[ind] == ' ' then
wordr=trim(Mid(str,inds,ind-inds))
if wordr == word then
return 1
endif
inds=ind
endif
ind=ind+1
wend
return 0
end sub


Top
   
PostPosted: 2005-02-03 18:07:07 
Offline
Site Admin
User avatar

Joined: 2004-04-03 16:49:38
Posts: 1964
KoK wrote:
например есть какое-то событие.
в журнале появляется сторока "text 12987 text"
Как можно вытащить это число в переменную?
можно ли откинуть не нужные буквы из строки и получить число?


в принципе есть и отдельная команда, но я о ней особо не обьявлял, так как защиту от дурака не сподобился добавить. как говорится на свой страх и риск используйте

y="text 12987 text"
x=uo.scanint("text %d",y)


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 6 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:  
Powered by phpBB® Forum Software © phpBB Limited