В новый век с графическим интерфейсом администрирования для Linux

Xakep, номер #036, стр. 036-063-3


Ну и в самом конце я освобождаю переменную lilofile с помощью lilofile.Free. В этот момент закрывается файл конфигурации LILO.

По нажатию кнопки "Apply" я сохраняю изменения. Для этого я использую те же методы, что и при загрузке, поэтому код обоих листингов практически одинаковый.

Итог

К тому моменту, как ты будешь читать этот номер Х, на дворе будет уже полная зима, и через несколько дней должен наступить Новый год. Так что у тебя теперь появилась возможность войти в новый век с новыми графическими средствами администрирования Linux. А главное, что написаны они будут твоими собственными руками.

Кстати, хотя этот пример и может работать в Delphi, погоды от него, как от Билла халявы :). Это потому что в окнах нет LILO и быть не может. Но зато все, что я писал про работу с файлами, остается в силе даже для окон.

Ну, вот и все. Исходники, как всегда, можно забрать с моего сайта http://www.cydsoft.com/vr-online/.

P.S. У меня к тебе просьба на сто баксов :). Не пиши мне большие письма. После появления рубрики кодинг меня каждый день валят вопросами. Я не в состоянии всем рассказывать то, о чем пишут книги. Я могу что-то подсказать, где-то помочь, но не больше. А просьбы типа помоги написать прогу вообще нереальны. Я отвечаю только на те вопросы, где ответ займет несколько строчек. Целые лекции по мылу я разводить не могу. Я бы с удовольствием помог всем, но это НЕВОЗМОЖНО. Вас слишком много, а я один :(((. Поэтому лучше разбей свой вопрос на несколько маленьких и спрашивай постепенно, а не все сразу.

ЛИСТИНГ 1

procedure TForm1.FormShow(Sender: TObject);

var

lilofile:TStrings;

i:Integer;

begin

lilofile:=TStringList.Create;

lilofile.LoadFromFile('/etc/lilo.conf');

for i:=0 to lilofile.Count-1 do

begin

if Pos('timeout', lilofile.Strings[i])>0 then

Edit1.Text:=copy(lilofile.Strings[i],

Pos('=',lilofile.Strings[i])+1,10);

if Pos('label', lilofile.Strings[i])>0 then

ComboBox1.Items.Add(copy(lilofile.Strings[i],

Pos('=',lilofile.Strings[i])+1,10));

end;

lilofile.Free;

end;

ЛИСТИНГ 2

procedure TForm1.Button1Click(Sender: TObject);

var

lilofile:TStrings;

i:Integer;

begin

lilofile:=TStringList.Create;

lilofile.LoadFromFile('/etc/lilo.conf');

for i:=0 to lilofile.Count-1 do

begin

if Pos('timeout', lilofile.Strings[i])>0 then

lilofile.Strings[i]:= 'timeout='+Edit1.Text;

if Pos('default', lilofile.Strings[i])>0 then

lilofile.Strings[i]:= 'default='+ComboBox1.Text;

end;

lilofile.SaveToFile('/etc/lilo.conf');

lilofile.Free;

Close;

end;

Назад на стр. 036-063-2  Содержание