|

В новый век с графическим интерфейсом администрирования для 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 Содержание
|