Еще вариант, сделать тпа инишника - читать строчку, потом ее делить на имя поля (все , что до знака "=" например) и значение (все , что после "=").Примерно так =)
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; //Вызывается при выключении скриптаbeginif MyFile<>nil thenbegin
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/finallytry
....
любые операции
....
finally// это блок выполнится при любых обстоятельствах (ошибка, выход из функции и т.д.)
...
здесь освобождаем рессурсы (уничтожаем че выше наплодили)
...
end;//try
Последний раз редактировалось alexsl, 15.05.2008 в 15:42.
procedure Init; //Вызывается при включении скриптаbegin
MyFile:=TStringList.Create;
try// тут бы юзать FileExists() - но увы в ФС его нету ИМХО// пробуем открыть файл
MyFile.LoadFromFile(MyFileName);
except// если ошибка, скорее всего файла нет// скорее всего у тебя сохранение настроек отдельной проц.// тоды
MySaveProcedure;
////// или так
... запись настроек в файл
...
// теперь сохраняем
MyFile.SaveToFile(MyFileName);
end;
end;
Последний раз редактировалось alexsl, 15.05.2008 в 15:38.