AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

StringGrid einträge speichern

Ein Thema von Rippo · begonnen am 18. Mär 2015 · letzter Beitrag vom 24. Apr 2015
Antwort Antwort
Rippo

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

StringGrid einträge speichern

  Alt 18. Mär 2015, 14:36
Hallo

ich habe eine ini datei die so aussieht

[Benutzer]
Admin=a

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

Admin ist der Benutzername und das a ist sein Passwort
beim zugang sind die zahlen dazu da um berechtigung zu setzten

jetzt möchte ich die einträge aus meinem stringgrid in die ini datei laden.

die einträge bei Benutzername und Passwort sollen in die Section [Benutzername]
Benutzername, Kunde,Lieferant,personal und Verwaltung sollen in die Section [Zugang]

Delphi-Quellcode:
procedure TfrmBenutzerverwaltung.btnSpeichernClick(Sender: TObject);
var
  Zeile, Spalte : integer;
  Titel: string;
  Ini: TIniFile;
Begin
 SaveToStringGrid(edtName.Text,edtPasswort.Text,edtKunde.Text,edtLieferant.Text,edtPersonal.Text,edtVerwaltung.Text);

 Ini := TIniFile.Create('C:\Users\Verwaltung.ini');
 try
  // Lösche Alle Sectionen aus der Ini Datei
  DeleteAllSections(ini);

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

  End;
 finally
  Ini.Free;
 end;
end;


wir müss ich es so umsetzten das ich die einträge in die richtige section setzte?
Miniaturansicht angehängter Grafiken
verwaltung.png  
  Mit Zitat antworten Zitat
puderle
(Gast)

n/a Beiträge
 
#2

AW: StringGrid einträge speichern

  Alt 18. Mär 2015, 14:52
ich würde wohl 2 TStringList -en machen. (TStringList.Create) für jede Section eine

mit TStringList.Add(str) an jeweils eine der Listen die Daten anfügen.
(d.h. ordne die Daten bevor du in die ini schreibst.. nicht erst beim Write )

http://www.delphibasics.co.uk/RTL.asp?Name=TStringList

Dann beide nacheinander in die ini schreiben. Du kannst auch Delimiter verwenden (,, ;, ., #, /, |, usw.)

so wie du es versuchst müsstest du andauernd durch die ini zwitschern um die richtigen Zeilen zu finden. Der "Umweg" über 2 Stringlisten könnte dein Problem lösen.

Hoffe das hilft dir weiter.

gg hfhf


PS: Die Passwörter speicherst du hoffentlich nicht so in der ini! der Trick dabei ist, nur die "verschlüsselten" PWDs zu speichern (Google: SHA1-Hash). Bei jeder Abfrage wird "das eingegebene Passwort verschlüsselt und mit dem verschlüsselten Wert in der DB/Liste verglichen". Sind die gleich, war auch das Passwort richtig . so speicherst du niemals Passwörter in Textform sondern nur verschlüsselte Werte vielleicht wusstest du das.. aber vielleicht hilft es dir auch "

http://helmbold.de/artikel/passwoerter-sicher-speichern

Geändert von puderle (18. Mär 2015 um 15:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.620 Beiträge
 
Delphi 12 Athens
 
#3

AW: StringGrid einträge speichern

  Alt 18. Mär 2015, 15:02
Wenn man schon Benutzerdaten in einer Ini speichert (ein bisschen gruselig ist das ja schon), dann könnte man doch die Benutzernamen als Section verwenden, das macht IMO den Aufbau strukturierter. Das sähe dann so aus:
Code:
[admin]
Passwort=a
Zugang1=1
Zugang2=2
Zugang3=3
Zugang4=4

[Hanswurst]
Passwort=salami
Zugang1=0
Zugang2=0
Zugang3=0
Zugang4=42
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#4

AW: StringGrid einträge speichern

  Alt 18. Mär 2015, 15:23
Delphi-Quellcode:
type
  TBenutzer = record
    Name: string;
    Kennwort: string;
    Rechte: string;
  end;

function ReadFromGrid(AZeile: Integer): TBenutzer;
const
  SpalteBenutzer = 1;
  SpalteKennwort = 2;
  SpalteRechteVon = 3;
  SpalteRechteBis = 6;
var
  Spalte: Integer;
  Recht: string;
begin
  Result.Name := 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.WriteString(SectionBenutzer, ABenutzer.Name, ABenutzer.Kennwort);
  AIni.WriteString(SectionZugang, ABenutzer.Name, ABenutzer.Rechte);
end;

// je Kunde
Benutzer := ReadFromGrid(Zeile);
SaveToIni(Ini, Benutzer);
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: StringGrid einträge speichern

  Alt 18. Mär 2015, 21:46
Es macht erheblich mehr Sinn die Daten so in der INI-Datei abzulegen:
Code:
[User\Admin]
Password=...
Permission=...
[User\Foo]
Password=...
Permission=...
Eine INI-Datei kann eben auch SubSections und Delphi-Referenz durchsuchenTIniFile unterstützt das auch.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#6

AW: StringGrid einträge speichern

  Alt 19. Mär 2015, 04:33
Beim augenblicklichen Funktionsumfang und dem eigentlichen Sinn einer INI-Datei macht das imho keinen Sinn bzw. bringt keinen Mehrwert. Davon abgesehen, das man Kennwörter eh nicht in einer INI-Datei ablegen sollte, finde ich die Einführung von Subsections insofern kontraproduktiv, als das diese einladen, noch mehr Mumpitz in einer INI abzulegen.

Aber übersichtlicher und selbsterklärend ist dein Vorschlag es allemal, da er die INI-Datei lesbarer macht.
  Mit Zitat antworten Zitat
24. Apr 2015, 07:22
Dieses Thema wurde am "24. Apr 2015, 07:22 Uhr" von "r_kerber" aus dem Forum "Neuen Beitrag zur Code-Library hinzufügen" in das Forum "Win32/Win64 API (native code)" verschoben.
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz