Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг
Войти через OpenID

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 12.05.2008, 22:18   #1
Новичок
 
Регистрация: 22.04.2008
Сообщений: 21
Сказал Спасибо: 8
Имеет 26 спасибок в 6 сообщенях
poizon пока неопределено
По умолчанию как сохранить переменные в файл и загрузить их

облазил весь хелп фастскрипта , это невозможно сделать я так это понял....весь инет тоже перерыл, в пакетххаке неработает это вроде.

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

п.с если конечно знаете...
спасибо...
poizon вне форума   Ответить с цитированием
Старый 13.05.2008, 06:48   #2
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 51
Сказал Спасибо: 14
Имеет 36 спасибок в 11 сообщенях
alexsl пока неопределено
По умолчанию так же как и в паскале

на вскидку, примерно так:

var
fle: TStringList;
begin
fle:=TStringList.Create;
try
// fle.LoadFromFile('название файла.txt'); // загрузить
..... тут ваши действия
fle.add('строковые данные');
...
или fle.text:='какието данные';
.....
fle.SaveToFile('название файла.txt');
finally
fle.Free;
end;
end;

зы: надеюсь данные будеш читать и писать не при каждой обработке пакета
зыы: try/except - не знаю работает ли, по идее скрип должен обрабатывать
alexsl вне форума   Ответить с цитированием
За это сообщение alexsl нажился спасибкой от:
Старый 13.05.2008, 08:14   #3
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Еще вариант, сделать тпа инишника - читать строчку, потом ее делить на имя поля (все , что до знака "=" например) и значение (все , что после "=").Примерно так =)
QaK вне форума   Ответить с цитированием
Старый 13.05.2008, 11:46   #4
Новичок
 
Регистрация: 22.04.2008
Сообщений: 21
Сказал Спасибо: 8
Имеет 26 спасибок в 6 сообщенях
poizon пока неопределено
По умолчанию

о я разобрался с тем как записать в файл, огромное спасибо, только не знаю как прочесть нужную строку из файла?
синтаксис такой кстати?

try
действия с файлом
finally
в конце работы с файлом
end;

так значит ещё работает if fle.find('123',1) then ShowMessage('s');
если найдено он ставится в тру

s:=fle.indexof('123');
ShowMessage(inttostr(s));
indexof возвращает номер строки в которую записан 123

Последний раз редактировалось poizon, 13.05.2008 в 12:14.
poizon вне форума   Ответить с цитированием
Старый 13.05.2008, 12:54   #5
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 51
Сказал Спасибо: 14
Имеет 36 спасибок в 11 сообщенях
alexsl пока неопределено
По умолчанию у TStringList есть свойство Values

Delphi Код:
var   MyFile: TStringList; const   MyFileName = 'c:\myfile.txt'; procedure Init; //Вызывается при включении скрипта begin  MyFile:=TStringList.Create;  try    MyFile.LoadFromFile(MyFileName);  except// если ошибка, не обращаем внимание  end; // SetValue('test','hello'); // ShowMessage(GetValue('test')); end; procedure Free; //Вызывается при выключении скрипта begin   if MyFile<>nil then   begin     MyFile.SaveToFile(MyFileName); // сохраняем при завершении работы скрипта.     MyFile.Free; // освобождаем память   end; end; // чтение значения из переменной function GetValue(ValName: string): string; begin   result:=MyFile.Values[ValName]; end; // запись переменной procedure SetValue(ValName: string; Value: string); begin   MyFile.Values[ValName]:=Value; end; //*********************************************** зы: теперь в где нужно вызывай для чтения: GetValue('ИмяПеременной'); для записи SetValue('ИмяПеременной','Значение'); работает, проверил =) зыы: В идеале все критические блоки нужно включать в болки типа try/except, try/finally try    ....    любые операции    .... finally // это блок выполнится при любых обстоятельствах (ошибка, выход из функции и т.д.)   ...   здесь освобождаем рессурсы (уничтожаем че выше наплодили)   ... end;//try  

Последний раз редактировалось alexsl, 15.05.2008 в 15:42.
alexsl вне форума   Ответить с цитированием
За это сообщение alexsl нажился 6 спасибками от:
Старый 13.05.2008, 14:34   #6
Новичок
 
Регистрация: 22.04.2008
Сообщений: 21
Сказал Спасибо: 8
Имеет 26 спасибок в 6 сообщенях
poizon пока неопределено
По умолчанию

отлично слушай, а ты знаешь как создать файл?из скрипта?я хочу типа запустил скрипт если файла нету то он создаёт и записывает туда настройки все
poizon вне форума   Ответить с цитированием
Старый 13.05.2008, 15:41   #7
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

кусок кода:
var f:file;
assignfile(f,'babailka.txt');
if not (fileexists('babaika.txt')) then rewrite(f);//если нет файлика - делаем его заново

примерно так
QaK вне форума   Ответить с цитированием
За это сообщение QaK нажился 2 спасибками от:
Старый 13.05.2008, 18:35   #8
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 51
Сказал Спасибо: 14
Имеет 36 спасибок в 11 сообщенях
alexsl пока неопределено
По умолчанию

в дополнение к QaK, можно так еще:
Delphi Код:
procedure Init; //Вызывается при включении скрипта begin   MyFile:=TStringList.Create;   try       // тут бы юзать FileExists() - но увы в ФС его нету ИМХО       // пробуем открыть файл      MyFile.LoadFromFile(MyFileName);   except// если ошибка, скорее всего файла нет       // скорее всего у тебя сохранение настроек отдельной проц.       // тоды       MySaveProcedure;      //      //      // или так      ... запись настроек в файл      ...      // теперь сохраняем       MyFile.SaveToFile(MyFileName);   end; end;

Последний раз редактировалось alexsl, 15.05.2008 в 15:38.
alexsl вне форума   Ответить с цитированием
За это сообщение alexsl нажился 4 спасибками от:
Старый 13.05.2008, 19:15   #9
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от QaK Посмотреть сообщение
кусок кода:
var f:file;
assignfile(f,'babailka.txt');
if not (fileexists('babaika.txt')) then rewrite(f);//если нет файлика - делаем его заново

примерно так
В фастскрипте не прокатывает такое. =(
NLObP вне форума   Ответить с цитированием
Старый 14.05.2008, 10:03   #10
Новичок
 
Регистрация: 22.04.2008
Сообщений: 21
Сказал Спасибо: 8
Имеет 26 спасибок в 6 сообщенях
poizon пока неопределено
По умолчанию

всё ребят спасибо всем огромное, я думал он не сохранит если указать не существующий файл, раз сохраняет то всё просто )спасибО!

Да, если файл есть, он открывается, иначе создается пустой.

Добавлено через 11 часов 21 минуту
прикол он мне почемуто в файл сохраняет номера процессов(valuename)
а в значение их названия.как это убрать)

Последний раз редактировалось poizon, 14.05.2008 в 10:03. Причина: Добавлено сообщение
poizon вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг



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

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


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

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!