![]() |
AW: Tstringlist hat ein Maximum von 3277 Zeilen?
Um diese Ini zu lesen, braucht man nicht unbedingt IniFiles (laut Delphi 7-Sourcen mit einer Begrenzung auf 16384 Byte - {delphi}\rtl\IniFiles.pas)
Delphi-Quellcode:
Damit hat man in slSection eben alle Sections.
var
sl : TStringList; slSections : TStringList; i : Integer; begin sl := TStringList.Create; slSections := TStringList.Create; sl.LoadFromFile('dateiname.ini'); for i := 0 to sl.Count - 1 do begin if Copy(sl[i],1,1) = '[' then begin slSections.Add(AnsiReplaceText(AnsiReplaceText(sl[i],'[',''),']','')); end; end; ... end; Die kann man dann, wie auch immer abarbeiten. Der Zugriff auf eine Section kann dann so erfolgen:
Delphi-Quellcode:
Das kann man so nur machen, wenn man sich auf die Struktur absolut verlassen kann, ansonsten eben die "Datenübernahme" in eine plausible Logik packen und das Überschreiten von sl.Count - 1 beachten.
iIndex := sl.IndexOf(Format('[%s]',[slSection[i]]));
if iIndex > -1 then begin // Bei der Struktur der Beispiel-Ini von weiter oben: // [1000] // Name=Max1 // Nachname=Mustermann1 // Kostenstelle=1 // Punkte=10 sName := sl[iIndex + 1]; sNachname := sl[iIndex + 2]; sKostenstelle := sl[iIndex + 3]; sPunkte := sl[iIndex + 4]; ... end;
Delphi-Quellcode:
Wer fleißig ist, baut sich 'ne Klasse, die das Ganze kapselt und pfeift auf die INI-Beschränkungen...
iIndex := sl.IndexOf(Format('[%s]',[slSection[i]]));
if iIndex > -1 then begin ... // Schreiben dann halt mit: sl[iIndex + 1] := sName; sl[iIndex + 2] := sNachname sl[iIndex + 3] := sKostenstelle; sl[iIndex + 4] := sPunkte; end else begin sl.Add(Format('[%s]',[slSection[i]])); sl.Add(sName); sl.Add(sNachname); sl.Add(sKostenstelle); sl.Add(sPunkte); end; sl.SaveToFile('dateiname.ini'); end; |
AW: Tstringlist hat ein Maximum von 3277 Zeilen?
Hallo,
an den TE, was spricht gegen TMemIniFile (wie schon mehrfach erwähnt?) Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz