AGB  ·  Datenschutz  ·  Impressum  







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

2 INI Dateien vergleichen

Ein Thema von Dr. Jack · begonnen am 2. Aug 2012 · letzter Beitrag vom 8. Aug 2012
 
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.750 Beiträge
 
Delphi 12 Athens
 
#12

AW: 2 INI Dateien vergleichen

  Alt 3. Aug 2012, 07:53
Da ich ja gestern Abend wohl schon arge Konzentrationsprobleme hatte, nun nochmal von vorn: TInifile.ValueExists bringt dir, wie du schon bemerkt hast, in diesem Fall gar nichts, da es lediglich prüft, ob in einem "Datensatz" ein "Feld" Artikelnummer existiert - das tut es aber immer.

Der Sir hat insofern auch Recht, daß die Verwendung einer INI-Datei als Datenbank in hohem Grade suboptimal ist, da sie dafür nicht gedacht ist. So gestaltet sich das Suchen nach Datensätzen mit bestimmten Feldinhalten als äußerst schwierig, wie wir hier alle feststellen können.

Mit der aktuellen Datenstruktur in den INI-Dateien bleibt nur ein verschachtelter Schleifendurchlauf, wie ihn Sir Rufo skizziert hat. Ich würde in der inneren Schleife allerdings noch ein Break einbauen, wenn der Datensatz gefunden wurde.

Um die Datenstruktur zu verbessern, könnte man die Sections nicht mit der Recordnummer versehen, sondern z.B. mit der Artikelnummer, die ja offensichtlich ein eindeutiger Schlüssel ist. So kann man einfach prüfen, ob eine Artikelnummer vorhanden ist: TInifile.SectionExists . Beim Löschen oder Umbenennen einer Artikelnummer muss dann allerdings die alte Section gelöscht werden: TInifile.EraseSection .

Aus Performancegründen würde sich auch die Verwendung von TMemInifile anbieten - vorausgesetzt, die Dateien sind nicht übergroß; aber dann wäre eh eine andere Lösung angebracht. Bei TMemInifile das UpdateFile nicht vergessen, um Änderungen auf die Platte zu schreiben.

Und ich habe aus diesem Thread auch was gelernt: Wenn jemand mit dem Zaun wedelt, pass auf, daß kein Brett vor deinem Kopf hängen bleibt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
 


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 05:49 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