Einzelnen Beitrag anzeigen

Benutzerbild von Back2Code
Back2Code

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

Bei StringListe Listenindex überschreitet das Maximum

  Alt 15. Mär 2013, 14:49
Hey Leute ich bins mal wieder. Ich bekomme derzeit bei ner 3fach verschachtelten Schleife den Fehler Listenindex überschreitet das maximum wenn ich die procedure aufrufe.

Delphi-Quellcode:
procedure TFrmHpt.EditingInis(IniPfade: TStringList);
var ini: TIniFile;
i,s,v, suchPunkt, searchChar: Integer;
Modul, fullFileName, IniName: String;
begin
try
  for i := 0 to IniPfade.Count-1 do // Über alle Inis gehen mit for Schleife
  begin // Block pro Ini
    ini := TIniFile.Create(iniPfade.Strings[i]);
    fullFileName := IniPfade[i];
    Modul := ExtractFileName(fullFileName); // Dateiname aktueller Ini + .Ini Endung
    suchPunkt := Pos('.', Modul);
    IniName := Copy(Modul, 1, suchPunkt-1); // Aktueller Modulname ohne ini Endung
    Sections := TStringList.Create;
    Ini.ReadSections(Sections); // Alle Sektionen der aktuellen Ini i in StringList Sections gespeichert

      for s := 0 to Sections.Count-1 do // Jetzt über alle Sektionen gehen [COLOR="Red"]Laut Debuggen bekomm ich dann hier den Fehler.[/COLOR]
      begin
        SectionTmp := Sections.Strings[s]; // Aktuelle Sektions Name für Query wichtig
        ini.ReadSectionValues(Sections.Strings[s], NamesValues); // Alle Namen + Werte von jeder Sektion in StringList Names Values eintragen

             
          for v := 0 to NamesValues.Count-1 do
          begin
            searchChar := Pos('=', NamesValues[v]);
            NameTmp := Copy(NamesValues[v], 1, searchChar - 1);
            ValueTmp := Copy(NamesValues[v], searchChar + 1, MaxInt);
                          
    TransferToDB(IniName, SectionTmp, NameTmp); // Übertragung in Datenbank | Query + Execute
    
          end;
      end;
  end;
finally
  ini.Free;
  NamesValues.Free;
  Values.Free;
  Names.Free;
  Sections.Free;
end;
end;

for s := 0 to Sections.Count-1 do // Jetzt über alle Sektionen gehen Laut Debuggen bekomm ich dann hier den Fehler.
begin
SectionTmp := Sections.Strings[s]; // Aktuelle Sektions Name für Query wichtig
ini.ReadSectionValues(Sections.Strings[s], NamesValues); // Alle Namen + Werte von jeder Sektion in StringList Names Values eintragen

Möchte mir jemand weiterhelfen?
  Mit Zitat antworten Zitat