|
Полезные функции Выкладываем полезные функции, чтоб не изобретать велосипед заново... |
05.09.2005, 19:11
|
#1
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Введите в param$ какие-то данные, разделённые ";" - после прокрутки цикла массив temp$ будет заполнен вашими данными:
param$=Input("")
;========
Const max_size%=40
Local temp$[max_size%]
Local c=1
For i=1 To Len(param$)
ip=Instr(param$,";",i)
If ip=0 ip=Len(param$)+1
temp[c]=Mid$(param$,i,ip-i)
i=ip
c=c+1
Next
c=c-1
;=========
For i=1 To max_size%
If temp[i]="" Exit
Print temp[i]
Next
WaitKey()
End
введите
на выходе получите
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
05.09.2005, 19:13
|
#2
|
Нуждающийся
Регистрация: 05.09.2005
Сообщений: 60
Написано 2 полезных сообщений (для 2 пользователей)
|
Anree будет рад
|
(Offline)
|
|
05.09.2005, 19:15
|
#3
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Забыл добавить:
в с будет хранится кол-во найденных подстрок.
Поэтому, последний цикл можно переписать:
For i=1 To c
Print temp[i]
Next
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
05.09.2005, 22:55
|
#4
|
|
Для справки:
Термин "конкатенация" означает объединение. Конкатенация строк - объединение двух строк в одну (часто используется в программировании). Деконкатенация строк - их разделение на две или больше.
|
|
|
23.05.2006, 07:45
|
#5
|
AnyKey`щик
Регистрация: 22.05.2006
Сообщений: 6
Написано 0 полезных сообщений (для 0 пользователей)
|
эээ... вот бы готовую функцию, такоую как Split получить
|
(Offline)
|
|
23.05.2006, 12:53
|
#6
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Мдя на входе строка и список разделителей на выходе массив кусков
__________________
|
(Offline)
|
|
23.05.2006, 14:20
|
#7
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
[blitz]
Const max_size%=40
Type TMassiv
Field st$[max_size%]
Field LastE%
End Type
Function Split(param$,M.TMassiv,Dev$)
Local c=1
For i=1 To Len(param$)
ip=Len(param)
For i2=1 To Len(Dev$)
cur_dev$=Mid(Dev,i2,1)
ipt=Instr(param$,cur_dev$,i)
If ipt<ip And ipt<>0 ip=ipt
Next
If ip=Len(param) ip=0
If ip=0 ip=Len(param$)+1
M\st[c]=Mid$(param$,i,ip-i)
i=ip
c=c+1
Next
c=c-1
M\LastE=c
End Function
;========
A.TMassiv=New TMassiv
Split(Input(),A,":;-")
For i=1 To A\lastE
Print A\st[i]
Next
WaitKey()
End
[/blitz]
Function Split(param$,M.TMassiv,Dev$)
param$ -входная (обрабатываемая строка
M.TMassiv - элемент типа TMassiv
Dev$ - строка разделителей
TMassiv
st$[max_size%] - массив подстрок размера max_size%
LastE% - кол-во заполненных элементов
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
23.05.2006, 14:27
|
#8
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
примерно так. можно оптимизировать - дерзайте =)
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:45.
|