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

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

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

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

Ответ
 
Опции темы
Старый 09.01.2008, 02:23   #1
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Чтение ini cfg и прочих конфигурационных файлов

Эта функция принимает строку и разделитель, возвращает часть строки справа от разделителя. (Instr не использую намеренно из-за глюков с кириллицей)
Function ParsR$(linet$,r$)
        len_=Len(linet$)
      For i=1 To len_
        n$=Mid(linet$,i,1)
        If n$=r$
          zfile$=Right(linet$,len_-i)
          Return zfile$
        EndIf 
      Next 
End Function
Пример чтения конфиг файла :

Function Load_cfg(patch$)
  wf=ReadFile(patch$)

If wf<>0

While (Eof(wf) = 0)
    linet$=ReadLine(wf)
   
    If Left(linet$,6)="up_key"
        up_akey=ParsR$(linet$,"=")
   EndIf   
    If Left(linet$,6)="down_k"
        down_akey=ParsR$(linet$,"=")
   EndIf
    If Left(linet$,6)="jump_k"
       jump_akey=ParsR$(linet$,"=")
   EndIf
    If Left(linet$,6)="shot_k"
       shot_akey=ParsR$(linet$,"=")
   EndIf
    If Left(linet$,6)="attack"
        attack_akey=ParsR$(linet$,"=")
   EndIf
    If Left(linet$,6)="sit_ke"
       sit_akey=ParsR$(linet$,"=")
   EndIf
  If Left(linet$,6)="map_ke"
      map_akey=ParsR$(linet$,"=")
   EndIf
Wend
CloseFile wf
EndIf
End Function
Содержимое конфига такое (для этого примера):

up_key=205
down_key=203
jump_key=82
shot_key=200
attack_key=28
sit_key=208
map_key=50
__________________
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо tormoz за это полезное сообщение:
Alex_Noc (27.04.2010), Nex (12.01.2009)
Старый 09.01.2008, 11:57   #2
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Чтение ini cfg и прочих конфигурационных файлов

Немножко модифицировал функции, первая функция теперь производительнее.
Но добавил 2, для получения левой и правой части. Но юзаеться Instr поэтому могут возникнуть проблеммы с кирилицей.
Function ParsR$(linet$,r$)
	Return Right(Linet,Len(linet$)-Instr(linet,r))
End Function

Function ParsL$(linet$,r$)
	Return Left(Linet,Instr(linet,r)-1)
End Function

И немного изменил саму главную функцию, она теперь читабельнее и удобнее добовлять новые действия на переменные.

Function Load_cfg(patch$)
	wf=ReadFile(patch$)
	
	If wf<>0
		While (Eof(wf) = 0)
			linet$=ReadLine(wf)
			tLeft$=ParsL(linet,"=")
			tRight$=ParsR(linet,"=")
			
			Select tLeft
				Case "up_key"
					up_akey=tRight
				Case "down_k"
					down_akey=tRight
				Case "jump_k"
					jump_akey=tRight
				Case "shot_k"
					shot_akey=tRight
				Case "attack"
					attack_akey=tRight
				Case "sit_ke"
					sit_akey=tRight
				Case "map_ke"
					map_akey=tRight
			End Select
		Wend
		CloseFile wf
	EndIf
End Function

Последний раз редактировалось moka, 09.01.2008 в 12:47.
(Offline)
 
Ответить с цитированием
Старый 09.01.2008, 12:11   #3
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Чтение ini cfg и прочих конфигурационных файлов

MoKa, tormoz писал: "(Instr не использую намеренно из-за глюков с кириллицей)"
(Offline)
 
Ответить с цитированием
Старый 09.01.2008, 12:24   #4
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Re: Чтение ini cfg и прочих конфигурационных файлов

А кто в конфигурационных файлах будет писать кириллицей О_О
(Offline)
 
Ответить с цитированием
Старый 09.01.2008, 12:35   #5
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Чтение ini cfg и прочих конфигурационных файлов

Tadeus O_O
player_name=Василий Пупкин

Последний раз редактировалось HolyDel, 09.01.2008 в 12:52.
(Offline)
 
Ответить с цитированием
Старый 09.01.2008, 12:45   #6
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Re: Чтение ini cfg и прочих конфигурационных файлов

Возможно, однако проще закодировать ИМХО
(Offline)
 
Ответить с цитированием
Старый 09.01.2008, 12:47   #7
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Чтение ini cfg и прочих конфигурационных файлов

Я кирилицу не юзаю
(Offline)
 
Ответить с цитированием
Старый 09.01.2008, 13:17   #8
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Чтение ini cfg и прочих конфигурационных файлов

Type Key
field name$
field code
end type
Читать сразу и название, и код кнопки. так проще сделать, по-моему...
__________________
(Offline)
 
Ответить с цитированием
Старый 09.01.2008, 20:46   #9
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Чтение ini cfg и прочих конфигурационных файлов

dimanche13

у новичков обычно очень туго с типами
Поэтому на такие простые вещи лучше их не озадачивать.

зы. Напиши теперь запись файла. (мне просто некогда)
__________________
(Offline)
 
Ответить с цитированием
Старый 09.01.2008, 21:45   #10
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Сообщение от tormoz Посмотреть сообщение
Напиши теперь запись файла. (мне просто некогда)
собсно, я тоже человек занятой
но принцип накидаю
ф-ция сохранить_кнопку_в_файл(имя_кнопки->строка,код_кнопки->число,имя_файла->строка)
файл = открыть_файл(имя_файла)
если (удачно_открыли(файл))
перейти_в_конец_файла()
добавить_строку(имя_кнопки)
добавить_символ("=")
добавить_число(код_кнопки)
закрыть(файл)
вернуть все_ок
иначе
вернуть ахтунг
конец ф-ции

вот кстати со списком было бы проще и чтение и сохранение
Тип "Кнопка"
имя->строка
код->число
конец_типа

Список_"Кнопок"_инициализировать() коммент: не силен в списках на Б3Д

ф-ция загрузить_настройки_клавы(имя_файла->строка)
файл = открыть_файл_для_чтения(имя_файла)
если (удачно_открыли(файл))
пока(не_конилсо_файл())
создать новую_кнопку типа "Кнопка"
новая_кнопка\имя = все что до символа "="
новая_кнопка\код = все что после символа "="
добавить_в_Список("Кнопок",новую кнопку)
снова
закрыть(файл)
вернуть все_ок !коммент: как вариант вернуть кол-во прочит. кнопок
иначе
вернуть ахтунг
ппц ф-ции

ф-ция сохранить_настройки_клавы(имя_файла->строка)
файл = открыть_файл_для записи(имя_файла)
если (удачно_открыли(файл))
пока(не_конилсо_список("Кнопок"))
добавить_строку(текущая_кнопка\имя)
добавить_символ("=")
добавить_число(текущая_кнопка\код)
следующий_из_Списка("Кнопок",текущая_кнопка)
снова
закрыть(файл)
вернуть все_ок
иначе
вернуть ахтунг
ппц ф-ции

Блин много написал, надеюсь это кому-то пригодитсо
__________________

Последний раз редактировалось Magus, 10.01.2008 в 00:13.
(Offline)
 
Ответить с цитированием
Старый 09.01.2008, 23:37   #11
FDsagizi
Бывалый
 
Аватар для FDsagizi
 
Регистрация: 04.01.2008
Адрес: Казахстан \ Талдыкорган
Сообщений: 659
Написано 170 полезных сообщений
(для 509 пользователей)
Ответ: Чтение ini cfg и прочих конфигурационных файлов

dimanche13- не просче в коде написать?
(Offline)
 
Ответить с цитированием
Старый 10.01.2008, 00:01   #12
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Ответ: Чтение ini cfg и прочих конфигурационных файлов

Сообщение от FDsagizi Посмотреть сообщение
dimanche13- не просче в коде написать?
Б3Д не знаю
переведи в код и запости сюда.
П.С. Давно известно, что лучше дать человеку удочку(принцип), чем каждый раз давать рыбу(копи/пасте)
__________________
(Offline)
 
Ответить с цитированием
Старый 20.01.2009, 11:25   #13
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: Чтение ini cfg и прочих конфигурационных файлов

tormoz, можешь пожалуйста написать код как это дело использовать? А то что то не понятно...
(Offline)
 
Ответить с цитированием
Старый 20.01.2009, 12:30   #14
jimon
 
Сообщений: n/a
Ответ: Чтение ini cfg и прочих конфигурационных файлов

SkySream
в посте tormoz'a и так есть пример
 
Ответить с цитированием
Старый 20.01.2009, 12:36   #15
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: Чтение ini cfg и прочих конфигурационных файлов

jimon, ты меня наверно не правильно понял. Просто я не могу понять, как эти функции использовать...
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение и запись файлов Spiderman JAVA Micro Edition 8 20.02.2009 13:46
Поиск файлов ~Lexx~ Delphi 1 29.01.2009 15:19
чтение dbf genroelgvozo BlitzMax 4 09.12.2008 13:53
Имена файлов impersonalis Полезные функции 10 09.01.2008 10:31
GuitarPro4 мона ли сделать редактор midi файлов или хотяб чтение музыки из текстового carmageddonist Программирование 3 17.11.2006 19:35


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


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