Einzelnen Beitrag anzeigen

Rippo

Registriert seit: 10. Feb 2015
75 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Richtig in Ini Datei abspeichern

  Alt 27. Mär 2015, 08:56
Delphi-Quellcode:
Procedure TfrmBenutzerverwaltung.SaveToStringGrid(Name, Passwort, Kunde, Lieferant, Personal, Verwaltung : string);
var ARow : Integer;
Begin
    // Schutz
    if Name ='then exit;
    ARow := StringGridVerwaltung.Row;
    With StringGridVerwaltung do
    Begin
      Cells[1,ARow] := Name;
      Cells[2,ARow] := Passwort;
      Cells[3,ARow] := Kunde;
      Cells[4,ARow] := Lieferant;
      Cells[5,ARow] := Personal;
      Cells[6,ARow] := Verwaltung;
   End;
End;
//*****************************************************************************/

               //Ini Datei wird gelöscht und wieder hergestellt
Procedure DeleteAllSections(aIni :TIniFile);
var AllSectionsList : TStringList;
                  i : Integer;
    SectionName : string;
Begin
   AllSectionsList := TStringList.Create;
 Try
   aIni.ReadSections(AllSectionsList);

  for I := 0 to AllSectionsList.Count-1 do
   Begin
      SectionName := AllSectionsList[I];
      aIni.EraseSection(SectionName);
   End;
 Finally
   AllSectionsList.Free;
 End;
End;
//*****************************************************************************/
//*****************************************************************************/

function ReadFromGrid(AZeile: Integer): TBenutzer;
const
  SpalteBenutzer = 1;
  SpalteKennwort = 2;
  SpalteRechteVon = 3;
  SpalteRechteBis = 6;
var
  Spalte: Integer;
  Recht: string;
  BenutzerName : String;
  //StringGridVerwaltung : TStringGrid;
begin
  Result.BenutzerName := StringGridVerwaltung.Cells[SpalteBenutzer, AZeile];
  Result.Kennwort := StringGridVerwaltung.Cells[SpalteKennwort, AZeile];
  Result.Rechte := '';
  for Spalte := SpalteRechteVon to SpalteRechteBis do
  begin
    Recht := StringGridVerwaltung.Cells[Spalte, AZeile];
    if Recht <> 'then
    begin
      if Result.Rechte <> 'then
        Result.Rechte := Result.Rechte + ',';
      Result.Rechte := Result.Rechte + Recht;
    end;
  end;
end;



procedure SaveToIni(AIni: TIniFile; const ABenutzer: TBenutzer);
const
  SectionBenutzer = 'Benutzer';
  SectionZugang = 'Zugang';
begin
  AIni := TIniFile.Create('C:\Users\Verwaltung.ini');

  AIni.WriteString(SectionBenutzer, ABenutzer.BenutzerName, ABenutzer.Kennwort);
  AIni.WriteString(SectionZugang, ABenutzer.BenutzerName, ABenutzer.Rechte);
begin
 AIni.Free;
end;
end;




               //Hier werden die Sätze in die Ini Datei gespeichert
procedure TfrmBenutzerverwaltung.btnSpeichernClick(Sender: TObject);
var
  Zeile, Spalte : integer;
  Titel: string;
  AIni: TIniFile;
  Benutzer : TBenutzer;

Begin
 SaveToStringGrid(edtName.Text,edtPasswort.Text,edtKunde.Text,edtLieferant.Text,edtPersonal.Text,edtVerwaltung.Text);
 AIni := TIniFile.Create('C:\Users\Verwaltung.ini');


 SaveToIni(AIni, Benutzer);


 DeleteAllSections(Aini);

 try
 begin
  {// Lösche Alle Sectionen aus der Ini Datei
  // DeleteAllSections(Aini);


  // Speicher alle Zeilen
  for Zeile := 0  to StringGridVerwaltung.RowCount - 1 do
  Begin
    // je Kunde
    for Spalte := StringGridVerwaltung.FixedCols to StringGridVerwaltung.ColCount - 1 do
    begin
      // Kundendetails
      Titel := StringGridVerwaltung.Cells[Spalte, 0];
      AIni.WriteString('BenutzerName' + IntToStr(Zeile), Titel, StringGridVerwaltung.Cells[Spalte, Zeile]);
    end;
    }

  End;
 finally
  AIni.Free;
 end;
end;

Ini datei sieht so aus


[Benutzer]
Hans=a

[Zugang]
Hans=1,2,3,4


Ich möchte auch das die Ini datei so bleibt




Die Einträge von Benutzername und passwort sollen in die section [Benutzer] so eingefügt werden BenutzerName = Passwort in die Section

und für [Zugang] soll BenutzerName = Kunde, Lieferant, Personal, Verwaltung

jedoch klappt dies nicht und es kommt eine fehlermeldung : fehlermeldung mit Zugrifsverletzung in modul kommt wenn ich auf den speicher button klicke
Miniaturansicht angehängter Grafiken
verwaltung.png  
  Mit Zitat antworten Zitat