|
Полезные функции Выкладываем полезные функции, чтоб не изобретать велосипед заново... |
09.01.2008, 02:23
|
#1
|
Гигант индустрии
Регистрация: 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 за это полезное сообщение:
|
|
09.01.2008, 11:57
|
#2
|
.
Регистрация: 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
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Чтение ini cfg и прочих конфигурационных файлов
MoKa, tormoz писал: "(Instr не использую намеренно из-за глюков с кириллицей)"
|
(Offline)
|
|
09.01.2008, 12:24
|
#4
|
Троллота
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений (для 1,772 пользователей)
|
Re: Чтение ini cfg и прочих конфигурационных файлов
А кто в конфигурационных файлах будет писать кириллицей О_О
|
(Offline)
|
|
09.01.2008, 12:35
|
#5
|
☭
Регистрация: 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
|
Троллота
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений (для 1,772 пользователей)
|
Re: Чтение ini cfg и прочих конфигурационных файлов
Возможно, однако проще закодировать ИМХО
|
(Offline)
|
|
09.01.2008, 12:47
|
#7
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Чтение ini cfg и прочих конфигурационных файлов
Я кирилицу не юзаю
|
(Offline)
|
|
09.01.2008, 13:17
|
#8
|
Мастер
Регистрация: 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
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Чтение ini cfg и прочих конфигурационных файлов
dimanche13
у новичков обычно очень туго с типами
Поэтому на такие простые вещи лучше их не озадачивать.
зы. Напиши теперь запись файла. (мне просто некогда)
__________________
|
(Offline)
|
|
09.01.2008, 21:45
|
#10
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Сообщение от tormoz
Напиши теперь запись файла. (мне просто некогда)
|
собсно, я тоже человек занятой
но принцип накидаю
ф-ция сохранить_кнопку_в_файл(имя_кнопки->строка,код_кнопки->число,имя_файла->строка)
файл = открыть_файл(имя_файла)
если (удачно_открыли(файл))
перейти_в_конец_файла()
добавить_строку(имя_кнопки)
добавить_символ("=")
добавить_число(код_кнопки)
закрыть(файл)
вернуть все_ок
иначе
вернуть ахтунг
конец ф-ции
вот кстати со списком было бы проще и чтение и сохранение
Тип "Кнопка"
имя->строка
код->число
конец_типа
Список_"Кнопок"_инициализировать() коммент: не силен в списках на Б3Д
ф-ция загрузить_настройки_клавы(имя_файла->строка)
файл = открыть_файл_для_чтения(имя_файла)
если (удачно_открыли(файл))
пока(не_конилсо_файл())
создать новую_кнопку типа "Кнопка"
новая_кнопка\имя = все что до символа "="
новая_кнопка\код = все что после символа "="
добавить_в_Список("Кнопок",новую кнопку)
снова
закрыть(файл)
вернуть все_ок !коммент: как вариант вернуть кол-во прочит. кнопок
иначе
вернуть ахтунг
ппц ф-ции
ф-ция сохранить_настройки_клавы(имя_файла->строка)
файл = открыть_файл_для записи(имя_файла)
если (удачно_открыли(файл))
пока(не_конилсо_список("Кнопок"))
добавить_строку(текущая_кнопка\имя)
добавить_символ("=")
добавить_число(текущая_кнопка\код)
следующий_из_Списка("Кнопок",текущая_кнопка)
снова
закрыть(файл)
вернуть все_ок
иначе
вернуть ахтунг
ппц ф-ции
Блин много написал, надеюсь это кому-то пригодитсо
Последний раз редактировалось Magus, 10.01.2008 в 00:13.
|
(Offline)
|
|
09.01.2008, 23:37
|
#11
|
Бывалый
Регистрация: 04.01.2008
Адрес: Казахстан \ Талдыкорган
Сообщений: 659
Написано 170 полезных сообщений (для 509 пользователей)
|
Ответ: Чтение ini cfg и прочих конфигурационных файлов
dimanche13- не просче в коде написать?
|
(Offline)
|
|
10.01.2008, 00:01
|
#12
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Ответ: Чтение ini cfg и прочих конфигурационных файлов
Сообщение от FDsagizi
dimanche13- не просче в коде написать?
|
Б3Д не знаю
переведи в код и запости сюда.
П.С. Давно известно, что лучше дать человеку удочку(принцип), чем каждый раз давать рыбу(копи/пасте)
|
(Offline)
|
|
20.01.2009, 11:25
|
#13
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Чтение ini cfg и прочих конфигурационных файлов
tormoz, можешь пожалуйста написать код как это дело использовать? А то что то не понятно...
|
(Offline)
|
|
20.01.2009, 12:30
|
#14
|
|
Ответ: Чтение ini cfg и прочих конфигурационных файлов
SkySream
в посте tormoz'a и так есть пример
|
|
|
20.01.2009, 12:36
|
#15
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Чтение ini cfg и прочих конфигурационных файлов
jimon, ты меня наверно не правильно понял. Просто я не могу понять, как эти функции использовать...
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:40.
|