AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

die Sections einer Ini-Datei zählen

Ein Thema von TeronG · begonnen am 11. Mai 2005 · letzter Beitrag vom 11. Mai 2005
Antwort Antwort
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#1

die Sections einer Ini-Datei zählen

  Alt 11. Mai 2005, 13:22
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
  ini.ReadSections(StringList); direkt die sectionen in eine Stringlist zu lesen und diese dann mit
  StringList.Count; zu Zählen
(jaja try/final und if FileExists fehlen noch ..)

oder spricht was dagegen??
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: die Sections einer Ini-Datei zählen

  Alt 11. Mai 2005, 13:36
Schau dir mal BigIni an. Ist 'ne sehr stark erweiterte Komponente für Ini-Verarbeitung.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: die Sections einer Ini-Datei zählen

  Alt 11. Mai 2005, 13:43
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
  ini.ReadSections(StringList); direkt die sectionen in eine Stringlist zu lesen und diese dann mit
  StringList.Count; zu Zählen
Logisch, dürfte auch schneller sein, das Zeichenkettenoperationne Zeit kosten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#4

Re: die Sections einer Ini-Datei zählen

  Alt 11. Mai 2005, 14:23
Dürfte es nicht noch schneller sein, zu zählen wie oft [ bzw. ] vorkommen?
Dann spart man sich auch noch die StringList.
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#5

Re: die Sections einer Ini-Datei zählen

  Alt 11. Mai 2005, 14:30
hab mal auf die schnelle versuche angestellt

5000 Sectionen á 10 (integer) Einträge ... 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ß warscheinlich zählt der ja desswegen nimmer richtig

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


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 Uhr.
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