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 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 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 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 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. взял ее старенькую для эксперимента завалялась
|
|
| |
YURIY | Дата: Понедельник, 29 Сентября 2014, 20:36 | Сообщение # 6 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 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 ( ) Потрясающий вывод после слов:
значит я угадал на счет номера, типа правильно понял? а то звучит как сарказм на мою туповатость в скриптах
|
|
| |
YURIY | Дата: Понедельник, 29 Сентября 2014, 20:45 | Сообщение # 8 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 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 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Неважно как. Не спрашивайте у меня каждый раз разрешение - попробуйте и оставьте так, как работает.
И ещё. Добавьте в конец своего условия, после строки Territory$=StrChange(string$,Territory=,''), команду Break(), чтобы цикл прервался, иначе в переменной i у Вас всегда будет номер последней строки.
Вечная память Андрею Сергееву!
|
|
| |
skylynx | Дата: Понедельник, 29 Сентября 2014, 21:11 | Сообщение # 11 |
Новый участник
Группа: Пользователи
Сообщений: 23
Репутация: 0
Награды: 0
Статус: Offline
| пока спасибо. буду дальше ломать мозгу
|
|
| |