Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: Es wird nur in eine datei geschrieben

  Alt 16. Sep 2005, 20:43
Hi Bene,

nur als Denkanstoß:

Delphi-Quellcode:
interface

type
  TForm1 = class(TForm) // solltest du vielleicht auch mal umbenennen
    ...
  private
    dataDir: string;
    procedure ApplyChanges(fileName: string; changes: TStringList);
    procedure FormCreate();
    ...
  end;

var
  Form1: TForm1;

// hier keine eigenen Variablen deklarieren
// die werden besser lokal deklariert
// oder als Objekt-Variablen von TForm1

implementation

{$R *.dfm}

procedure TForm1.ApplyChanges(fileName: string; changes: TStringList);
var
  i: integer;
  sl: TStringList;
  key, value, s: string;
begin
  sl := TStringList.Create;
  sl.LoadFromFile(dataDir + 'var' + fileName);
  s := sl.Text;
  for i := 0 to Pred(changes.Count) do begin
    key := changes.Names[i];
    value := changes.Values[key];
    s := StringReplace(s, key, value, [rfIgnoreCase]);
  end;
  sl.Text := s;
  sl.SaveToFile(dataDir + fileName);
  sl.Free;
end;

procedure TForm1.FormCreate(...);
begin
  dataDir := ExtractFilePath(ParamStr(0));
end;

procedure TForm1.btsavedataClick(Sender: TObject);
var
  changes: TStringList;
begin
  changes := TStringlist.Create;
  changes.Values['xrcon_pw1'] := edrcon1.Text;
  changes.Values['xrcon_pw2'] := edrcon2.Text;
  changes.Values['xrcon_pw3'] := edrcon3.Text;
  changes.Values['xip1'] := edip1.Text;
  changes.Values['xip2'] := edip2.Text;
  changes.Values['xip3'] := edip3.Text;
  ApplyChanges('rcon.cfg', changes);

  changes.Clear;
  changes.Values['xservname1'] := ednb1.Text;
  changes.Values['xservname2'] := ednb2.Text;
  changes.Values['xservname3'] := ednb3.Text;
  ApplyChanges('commandmenu.txt', changes);

  changes.Free;
end;

end.
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat