Registriert seit: 10. Feb 2015
75 Beiträge
Delphi 10 Seattle Professional
|
Richtig in Ini Datei abspeichern
27. Mär 2015, 09: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
|
|
Zitat
|