Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi die Sections einer Ini-Datei zählen (https://www.delphipraxis.net/45728-die-sections-einer-ini-datei-zaehlen.html)

TeronG 11. Mai 2005 13:22


die Sections einer Ini-Datei zählen
 
Hi
Ich wollte mal die Einträge (sectionen) einer ini-Datei zählen und habe folgenden Code gefunden.
Delphi-Quellcode:
function INISectionsCount(const AFilename: String): Integer;
var ISectionCount: Integer;
    i: Integer;
    SCurr: String;
    SLIni: TStringList;
begin
  SLIni := TStringList.Create;
  ISectionCount := 0;

  try
    SLIni.LoadFromFile(AFilename);
    If SLIni.Count <> 0 then
    begin
      For i := 0 to SLIni.Count - 1 do
      begin
        SCurr := SLIni.Strings[i];
        If (SCurr <> '') and (SCurr[1] = '[') and (SCurr[Length(SCurr)] = ']') then
          Inc(ISectionCount);
      end;
    end
  finally
    SLIni.Free;
  end;

  Result := ISectionCount;
end;
so weit so gut ...(futzt auch)

aber wenn man eh schon mit einer TStringList arbeitet währe es da nicht einfacher mit
Delphi-Quellcode:
  ini.ReadSections(StringList);
direkt die sectionen in eine Stringlist zu lesen und diese dann mit
Delphi-Quellcode:
  StringList.Count;
zu Zählen :gruebel:
(jaja try/final und if FileExists fehlen noch ..)

oder spricht was dagegen??

Bernhard Geyer 11. Mai 2005 13:36

Re: die Sections einer Ini-Datei zählen
 
Schau dir mal BigIni an. Ist 'ne sehr stark erweiterte Komponente für Ini-Verarbeitung.

Luckie 11. Mai 2005 13:43

Re: die Sections einer Ini-Datei zählen
 
Zitat:

Zitat von TeronG
Hi
Ich wollte mal die Einträge (sectionen) einer ini-Datei zählen und habe folgenden Code gefunden.
Delphi-Quellcode:
function INISectionsCount(const AFilename: String): Integer;
var ISectionCount: Integer;
    i: Integer;
    SCurr: String;
    SLIni: TStringList;
begin
  SLIni := TStringList.Create;
  ISectionCount := 0;

  try
    SLIni.LoadFromFile(AFilename);
    If SLIni.Count <> 0 then
    begin
      For i := 0 to SLIni.Count - 1 do
      begin
        SCurr := SLIni.Strings[i];
        If (SCurr <> '') and (SCurr[1] = '[') and (SCurr[Length(SCurr)] = ']') then
          Inc(ISectionCount);
      end;
    end
  finally
    SLIni.Free;
  end;

  Result := ISectionCount;
end;
so weit so gut ...(futzt auch)

aber wenn man eh schon mit einer TStringList arbeitet währe es da nicht einfacher mit
Delphi-Quellcode:
  ini.ReadSections(StringList);
direkt die sectionen in eine Stringlist zu lesen und diese dann mit
Delphi-Quellcode:
  StringList.Count;
zu Zählen :gruebel:

Logisch, dürfte auch schneller sein, das Zeichenkettenoperationne Zeit kosten.

Ultimator 11. Mai 2005 14:23

Re: die Sections einer Ini-Datei zählen
 
Dürfte es nicht noch schneller sein, zu zählen wie oft [ bzw. ] vorkommen?
Dann spart man sich auch noch die StringList.

TeronG 11. Mai 2005 14:30

Re: die Sections einer Ini-Datei zählen
 
hab mal auf die schnelle versuche angestellt

5000 Sectionen á 10 (integer) Einträge :mrgreen: ... Count geht schneller ... aber zählt falsch ^^ (bei 1000 klappte noch alles)
nagut .. wer macht auch schon so große ini's ... dann lieber XML/DB ... (mal big-ini angugn )
Wie äußert sich es eigentlich, daß normale inis nicht größer als 64K sein dürfen ??? Meine Testini ist 600K groß :gruebel: warscheinlich zählt der ja desswegen nimmer richtig :gruebel:

EDIT: Mit Big ini zählt Count wieder richtig :)
EDIT2: und Bigger Ini hat sogar ne se SectionCount Methode *schwelg* :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:17 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