Einzelnen Beitrag anzeigen

Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#7

AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz

  Alt 1. Mär 2013, 13:48
Hier:

Delphi-Quellcode:
procedure TFrmHpt.Import1Click(Sender: TObject);
var Pfad: string;
    IniPfade: TStringlist;
begin
  IniPfade := TStringList.Create;
  processing := True;
  try
  Application.CreateForm(TFrmLoading, FrmLoading);
  SelectDirectory('Ordner auswählen', '' ,Pfad);
  FrmLoading.Show;

  GetFilesInDirectory(Pfad, '*.ini', IniPfade, True, True );

  OpenIniAndFillOutDB(IniPfade);

  FrmLoading.Hide;
  finally
    processing := False;
    IniPfade.Free;
  end;
end;

// readSections = alle sektionen auslesen // readsection = bestimmte sektion auslesen
procedure TFrmHpt.OpenIniAndFillOutDB(inilist: TStringList);
var i, ii, jj, j, x, Value, AbschnittsZähler: Integer;
    Modul, Abschnitt, fullFileName: String;
    ini: TIniFile;
    Sektionen, Werte, Schlüssel, Abschnitte : TStringList;
begin
  //ShowMessage((inilist.Strings[2]));
  for i := 0 to inilist.Count-1 do
  begin
    ini := TIniFile.Create(inilist.Strings[i]);
    Sektionen := TStringList.Create;
    Abschnitte := TStringList.Create;
    Schlüssel := TStringlist.Create;
    Werte := TStringList.Create;
    fullFileName := inilist.Strings[i];
    Modul := ExtractFileName(fullFileName); // Dateiname aktueller Ini i z.b hphabirgendwas.ini;
    AbschnittsZähler := INISectionsCount(fullFileName); // Abschnittszäher = Wie viele Abschnitte gibt es in der aktuellen Ini
    Ini.ReadSections(Sektionen); // Jetzt sind alle Sektionen in der StringList Sektionen

    //Alle Abschnitte in die Stringlist Abschnitte packen
    for j := 0 to Sektionen.Count-1 do // Schleife und durch jede Sektion durchgehen
      begin
        ini.ReadSection(Sektionen.Strings[j], Abschnitte);
      end;

    // Alle Werte mit Abschnitten davor in die Stringlist Werte packen
    for jj := 0 to Abschnitte.Count-1 do
      begin
        ini.ReadSectionValues(Sektionen.Strings[jj], Werte);
      end;

  Sektionen.SaveToFile ('C:\Users\admin\Desktop\aTest\Sektionen.txt');
  Abschnitte.SaveToFile ('C:\Users\admin\Desktop\aTest\Abschnitte.txt');
  Werte.SaveToFile ('C:\Users\admin\Desktop\aTest\Werte.txt');

  end;


  // Jeweile Ini von inilist.Strings[i] öffnen. Sektionen / Values / Modulname holen und in Datenbank schreiben.
  // Überprüfen ob bereits vorhanden, wenn nicht dann eintragen.
end;
  Mit Zitat antworten Zitat