Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Tstringlist hat ein Maximum von 3277 Zeilen? (https://www.delphipraxis.net/186354-tstringlist-hat-ein-maximum-von-3277-zeilen.html)

muhael 26. Aug 2015 13:55

Delphi-Version: 7

Tstringlist hat ein Maximum von 3277 Zeilen?
 
Heyho habe mal eine Frage zu Stringlist.
Und zwar ist mir Aufgefallen dass man, wenn man eine datei mit einer Stringliste läd "unendlich" viele Zeilen in der Liste haben kann aber wenn man die Stringliste vom Quellcode her füllt (über eine For schleife) dann ist die liste maximal 3277 Zeilen lang.

ist das ein bekanntes Problem? bei Google hab ich nichts gefunden und her in der suche auch nicht.
Oder mach ich einfach nur was falsch?


PS: Meine Delphi Version ist Delphi 7 Enterprise


LG

muhael

baumina 26. Aug 2015 13:59

AW: Tstringlist hat ein Maximum von 3277 Zeilen?
 
Zeig doch mal deine for-Schleife und sag uns den Fehler den du bekommst.

muhael 26. Aug 2015 14:06

AW: Tstringlist hat ein Maximum von 3277 Zeilen?
 
es ist kein fehler er hört einfach nach 3277 auf:

habe ein procedure da lade ich eine datei in die Stringlist und gebe den count in einer showmessage aus:
Delphi-Quellcode:
sl.LoadFromFile(pfad);
showmessage(inttostr(sl.Count)+ ' Clienten werden importiert.');
hier zeigt er die gesamte anzahl an z.B. 4500...

aber im programmstart wenn die Clienten in das Stringrid(sgclients) geladen werden sollen stoppt er bei 3277...
Delphi-Quellcode:
  ini.ReadSections(SL);
  SL.Sort;
  SGClients.RowCount := SL.Count +1;
  Statusb.Panels[0].Text := InttoStr(SGclients.RowCount-1) + ' Clients registriert.';
  FOR i := 0 to SL.Count -1  do
  begin
    // Mach was
  end;
hier speichert er nur 3277... von den eigendlichen 4500


ich würde es gerne nur wissen das programm wird nie solch eine anzahl von Clienten erhalten bzw verarbeiten müssen

baumina 26. Aug 2015 14:20

AW: Tstringlist hat ein Maximum von 3277 Zeilen?
 
Das liegt daran, dass Du Äpfel (Anzahl Zeilen=4500) mit Birnen (Anzahl Sektionen=3277) vergleichst.

muhael 26. Aug 2015 14:24

AW: Tstringlist hat ein Maximum von 3277 Zeilen?
 
ja aber die Sectionen in der iniDatei zählen auch die 4500... also theoretisch verliere ich die daten bei der zeile:
Delphi-Quellcode:
ini.readsections(sl);
oder nicht?

da zuerst der import erfolgt eine Zeile bei der import Stringlist ist eine Section in der ini Datei das heißt beim import werden dann 4500 Sections erstellt.
diese sind auch vorhanden. aber beim einlesen dann nicht mehr oder was?

Jumpy 26. Aug 2015 14:34

AW: Tstringlist hat ein Maximum von 3277 Zeilen?
 
Gibt es vllt. doppelte in der Stringlist?

Sir Rufo 26. Aug 2015 14:36

AW: Tstringlist hat ein Maximum von 3277 Zeilen?
 
Hast da alle Sektionen per Hand durchgezählt?

Nein -> mach es!

Eine andere Möglichkeit ist eine leere Ini-Datei und dort alle Einträge importieren.
Vor jedem Schreiben prüfst du aber nun, ob die Sektion schon existiert -> Dublette entdeckt!

baumina 26. Aug 2015 14:37

AW: Tstringlist hat ein Maximum von 3277 Zeilen?
 
Hab mal nen kleinen Test gemacht. Showmessage bringt mir die erwarteten 4500.

Delphi-Quellcode:
procedure TForm26.Button1Click(Sender: TObject);
var
  i : Integer;
  s : TStringList;

begin
  s := TStringList.Create;
  for i := 1 to 4500 do
  begin
    s.Add('[Sect'+IntToStr(i)+']');
  end;
  s.SaveToFile('c:\temp\test.ini');
  s.Free;
end;

procedure TForm26.Button2Click(Sender: TObject);
var
  ini : TIniFile;
  s : TStringList;

begin
  ini := TIniFile.Create('c:\temp\test.ini');
  s := TStringList.Create;
  ini.ReadSections(s);
  ini.Free;
  showmessage(IntToStr(s.Count));
  s.Free;
end;

Sir Rufo 26. Aug 2015 14:39

AW: Tstringlist hat ein Maximum von 3277 Zeilen?
 
@baumina

Er würde dir auch 9999 melden, wenn du 9999 unterschiedliche Sektionen erstellst ;)
(Dir war das klar)

muhael 26. Aug 2015 14:41

AW: Tstringlist hat ein Maximum von 3277 Zeilen?
 
Zitat:

Zitat von Jumpy (Beitrag 1313586)
Gibt es vllt. doppelte in der Stringlist?

nein Forlaufender Section Zähler von 1000 beginnend (Personalnummern kennt man ja ^^)

Zitat:

Zitat von Sir Rufo (Beitrag 1313587)
Hast da alle Sektionen per Hand durchgezählt?

Nein -> mach es!

Kann es sein das die ini datei bei 3277 sections gecappt ist?


Das einzige was doppelt sein kann sind 2 Keys da stets max als name und Mustermann als nachname eingetragen ist


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:43 Uhr.
Seite 1 von 4  1 23     Letzte »    

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