AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Unterschied TMemIniFile 10.2 Tokyo / 10.3 Rio
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschied TMemIniFile 10.2 Tokyo / 10.3 Rio

Ein Thema von AJ_Oldendorf · begonnen am 2. Jan 2019 · letzter Beitrag vom 4. Jan 2019
 
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Unterschied TMemIniFile 10.2 Tokyo / 10.3 Rio

  Alt 4. Jan 2019, 14:48
Aber Unit-Tests sollten sowas finden (wenn man überhaupt davon ausgeht, das das was schiefgehen kann...)
Das würde voraussetzen, daß das gewünschte Verhalten auch irgendwo beschrieben ist. Unit-Tests finden in der Regel nur Fehler, die man schon mal hatte oder von vornherein ausschließen will. Ich bin mir ziemlich sicher, daß es für TMemIniFile bereits einige Unit-Tests gibt. Allerdings wird vermutlich keiner davon mit mehreren Sections gleichen Namens arbeiten, denn dann wäre diese Problematik ja bewusst und sowohl dokumentiert als auch konsistent implementiert. In diesem Fall ist das Problem also nicht fehlende Unit-Tests, sondern eher das fehlende Bewusstsein für dieses Szenario.

Um nochmal auf das ursprüngliche Verhalten von TMemIniFile anhand des obigen Testprogramms zurückzukommen: Die zweite Section wird zwar bei ReadSections aufgelistet, an ihren Inhalt kommt man aber weder mit ReaadString noch ReadSectionValues ran (gleiches gilt auch für TIniFile). Wozu sollte das zweite Vorkommen dieser Section denn nun überhaupt gut sein? Eigentlich müsste man bei ReadSections diese Doublette doch besser gleich entfernen (oder eine Exception werfen). Dann hat man aber faktisch dasselbe Verhalten, als ob die doppelte Section gar nicht in der INI vorhanden wäre.

In Rio wird dieses Verhalten (bewusst oder unbewusst) geändert in der Art, daß zwar die doppelte Section nicht mehr aufgeführt wird, deren Werte aber jetzt zur Verfügung stehen. Als Nebeneffekt wird beim Schreiben von TMemInifile auch noch implizit eine Normalisierung durchgeführt, bei der die doppelten Sections in einer zusammengefasst werden. Ich finde dieses Verhalten wesentlich realistischer und auch sinnvoller, wobei ich ziemlich sicher bin, daß dies nicht wirklich der Grund für diese Änderung war, sondern es sich eher um einen Nebeneffekt handelt.
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 07:25 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 by Thomas Breitkreuz