Форум
Написать нам
Страница 1 из 11
Модератор форума: as-master 
Форум MMB » Всё о программе Multimedia Builder » Общие вопросы по MMB » INI редактор
INI редактор
skylynxДата: Понедельник, 29 Сентября 2014, 18:18 | Сообщение # 1
Новый участник
Группа: Пользователи
Сообщений: 23
Репутация: 0
Награды: 0
Статус: Offline
например: есть в ини файле строка
Territory=350;

вешаю на страницу это

Код
ini$='<SrcDir>\data\text.ini'
For i=1 To NOL(ini$)
string$=StrFromFile(ini$,i,1)
If (POS(Territory=,string$)<>0) Then
Territory$=StrChange(string$,Territory=,'')
End
Next i
DisplayValue("EditBox","Territory$")


скрипт находит именно Territory и значение 350 выводит в EditBox. можно это изменять.

в EditBox есть поле в свойствах, для скрипта, который выполняется после изменения значения в поле EditBox. как выглядит код в скрипте для сохранения именно этого значения (было 350, стало, например 500) и именно в этом файле, с там же расширением?(в этом, что прописан в ini$). в двух словах, сохранение нового значения EditBox.
 
YURIYДата: Понедельник, 29 Сентября 2014, 18:27 | Сообщение # 2
Злостный админ
Группа: Администраторы
Сообщений: 3011
Репутация: 71
Награды: 28
Статус: Offline
Цитата Справка MMB
StrToLine(ИмяФайла$,Строка$,Номер,ПоверхСтроки)

Добавляет строку в определенное место текстового файла. В случае успеха возвращает 1, иначе возвращает 0.

ИмяФайла$ - определяет путь к текстовому (не двоичному!) файлу.
Строка$ - строка, добавляемая в файл.
Номер - порядковый номер строки, в которую будет добавлен текст.
ПоверхСтроки - если этот параметр равен TRUE, то исходная строка в файле будет удалена и на ее место вставлена Строка$, если FALSE, то замена будет осуществлена со сдвигом исходной и последующих строк на одну позицию вниз.


Номер строки Вам известен, перезапишите её и вот так будет изменено значение.



Вечная память Андрею Сергееву!
 
skylynxДата: Понедельник, 29 Сентября 2014, 19:07 | Сообщение # 3
Новый участник
Группа: Пользователи
Сообщений: 23
Репутация: 0
Награды: 0
Статус: Offline
вид файла таков:

qwerty {
asd=456;
asf=987;
}

asdf {
...

в моем случае номер строки это даже пустые строки и + начальные с комменариями?
и ещо, тот код вверху в едитбокс вводит все значение после = , тоесть 350; можно как-то запретить вывод этого ; знака?

тоесть вместо ИмяФайла$ вставить это <SrcDir>\data\text.ini ?


Сообщение отредактировал skylynx - Понедельник, 29 Сентября 2014, 19:18
 
YURIYДата: Понедельник, 29 Сентября 2014, 19:51 | Сообщение # 4
Злостный админ
Группа: Администраторы
Сообщений: 3011
Репутация: 71
Награды: 28
Статус: Offline
Цитата skylynx ()
вид файла таков:


По формату это всё же не ini...

Цитата skylynx ()
в моем случае номер строки это даже пустые строки и + начальные с комменариями?


В смысле? Вот Вы считали строку:

Цитата skylynx ()
скрипт находит именно Territory и значение 350 выводит в EditBox


В переменной i у Вас номер нужной строки.

Цитата skylynx ()
можно как-то запретить вывод этого ; знака?


Поставить в настройках эдитбокса тип integer. Если из файла могут редактироваться не только целочисленные значения, то посмотрите функции для работы с текстом в справке - обрежьте точку с запятой перед показом.

Цитата skylynx ()
тоесть вместо ИмяФайла$ вставить это <SrcDir>\data\text.ini ?


Да.



Вечная память Андрею Сергееву!
 
skylynxДата: Понедельник, 29 Сентября 2014, 20:19 | Сообщение # 5
Новый участник
Группа: Пользователи
Сообщений: 23
Репутация: 0
Награды: 0
Статус: Offline
значит под номером строки подразумевается Territory$ а не порядковый номер строки в файле?
Цитата YURIY ()
По формату это всё же не ini...
все же ини. это из игры Jurassic park operation genesis. взял ее старенькую для эксперимента ;) завалялась :D
 
YURIYДата: Понедельник, 29 Сентября 2014, 20:36 | Сообщение # 6
Злостный админ
Группа: Администраторы
Сообщений: 3011
Репутация: 71
Награды: 28
Статус: Offline
Цитата skylynx ()
значит под номером строки подразумевается Territory$ а не порядковый номер строки в файле?


Потрясающий вывод после слов:

Цитата YURIY ()
В переменной i у Вас номер нужной строки.


Цитата skylynx ()
все же ини


Нет, не ini. Если у файла такое расширение - это ни о чём не говорит. Вот формат настоящего ini-файла:

https://ru.wikipedia.org/wiki....B.D0.B0

P. S. Рекомендую Вам чаще читать справку. По крайней мере 90% Ваших вопросов имеют там ответы.



Вечная память Андрею Сергееву!
 
skylynxДата: Понедельник, 29 Сентября 2014, 20:41 | Сообщение # 7
Новый участник
Группа: Пользователи
Сообщений: 23
Репутация: 0
Награды: 0
Статус: Offline
Цитата YURIY ()
Потрясающий вывод после слов:


значит я угадал на счет номера, типа правильно понял? а то звучит как сарказм на мою туповатость в скриптах redface
 
YURIYДата: Понедельник, 29 Сентября 2014, 20:45 | Сообщение # 8
Злостный админ
Группа: Администраторы
Сообщений: 3011
Репутация: 71
Награды: 28
Статус: Offline
Цитата skylynx ()
значит я угадал на счет номера, типа правильно понял? а то звучит как сарказм


Блин, ну я же 2 раза написал, что номер строки в переменной i, а не переменной Territory$, в которой находится лишь кусок строки - он нам ничего не даёт для работы команды StrToLine.

Цитата skylynx ()
туповатость в скриптах


Начните с более простого, если чувствуете, что не тянете. Программирование - это не самая простая вещь на планете, как почему-то думают многие. Оно даётся не всем. Что можно сказать совершенно о любом человеческом навыке.



Вечная память Андрею Сергееву!
 
skylynxДата: Понедельник, 29 Сентября 2014, 21:00 | Сообщение # 9
Новый участник
Группа: Пользователи
Сообщений: 23
Репутация: 0
Награды: 0
Статус: Offline
StrToLine(ini$,Territory$,i,TRUE)

или

StrToLine(<SrcDir>\data\text.ini,Territory$,i,TRUE)

как правильно?
 
YURIYДата: Понедельник, 29 Сентября 2014, 21:04 | Сообщение # 10
Злостный админ
Группа: Администраторы
Сообщений: 3011
Репутация: 71
Награды: 28
Статус: Offline
Неважно как. Не спрашивайте у меня каждый раз разрешение - попробуйте и оставьте так, как работает.

И ещё. Добавьте в конец своего условия, после строки Territory$=StrChange(string$,Territory=,''), команду Break(), чтобы цикл прервался, иначе в переменной i у Вас всегда будет номер последней строки.



Вечная память Андрею Сергееву!
 
skylynxДата: Понедельник, 29 Сентября 2014, 21:11 | Сообщение # 11
Новый участник
Группа: Пользователи
Сообщений: 23
Репутация: 0
Награды: 0
Статус: Offline
пока спасибо. буду дальше ломать мозгу scared %)
 
Форум MMB » Всё о программе Multimedia Builder » Общие вопросы по MMB » INI редактор
Страница 1 из 11
Поиск: