Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > Полезные функции

Полезные функции Выкладываем полезные функции, чтоб не изобретать велосипед заново...

Ответ
 
Опции темы
Старый 05.09.2005, 19:11   #1
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 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
введите
12;ABS;0.0.0;QQW
на выходе получите
12
ABS
0.0.0
QQW
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Baisangur (22.03.2009)
Старый 05.09.2005, 19:13   #2
BG-General
Нуждающийся
 
Регистрация: 05.09.2005
Сообщений: 60
Написано 2 полезных сообщений
(для 2 пользователей)
Anree будет рад
(Offline)
 
Ответить с цитированием
Старый 05.09.2005, 19:15   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 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
alcosholik
 
Сообщений: n/a
Для справки:
Термин "конкатенация" означает объединение. Конкатенация строк - объединение двух строк в одну (часто используется в программировании). Деконкатенация строк - их разделение на две или больше.
 
Ответить с цитированием
Старый 23.05.2006, 07:45   #5
Константин
AnyKey`щик
 
Регистрация: 22.05.2006
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
эээ... вот бы готовую функцию, такоую как Split получить
(Offline)
 
Ответить с цитированием
Старый 23.05.2006, 12:53   #6
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Мдя на входе строка и список разделителей на выходе массив кусков
__________________
(Offline)
 
Ответить с цитированием
Старый 23.05.2006, 14:20   #7
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 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
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
примерно так. можно оптимизировать - дерзайте =)
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли сделать так чтобы при нажатии "вверх" и "вниз" двигалась одна картинка, а при нажатии "вправо" и "влево" - другая Total_Nube_&_Lamo Основной форум 2 13.12.2009 22:00
"Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов" Richik Библиотеки 17 03.06.2009 14:18
"DarkWing Duck" aka "Черный Плащ" Chrono Syndrome Болтовня 19 04.12.2007 16:05
Игра "Три слова". Рассказ "Время планет" Ilyich Юмор 77 02.04.2007 17:49
"Пополнение рядов" или "Слава роботам!" impersonalis Юмор 1 15.08.2006 23:54


Часовой пояс GMT +4, время: 19:51.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com