AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Ini-Inhalt geht in sehr seltenen Fällen verloren (TMemIniFile)

Ini-Inhalt geht in sehr seltenen Fällen verloren (TMemIniFile)

Ein Thema von CodeX · begonnen am 8. Jan 2016 · letzter Beitrag vom 12. Jan 2016
Antwort Antwort
Der schöne Günther

Registriert seit: 6. Mär 2013
6.216 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Ini-Inhalt geht in sehr seltenen Fällen verloren (TMemIniFile)

  Alt 8. Jan 2016, 17:38
Das hatte ich mit TMemIniFile auch einmal. Wenn du dir die Implementierung anschaust dann basiert das auf einer TStringList die erst einmal die gesamte Datei "leert" und dann noch einmal von vorne alles reinschreibt. Wenn dazwischen drin der Saft ausgeht dann hast du eine leere Datei.

Das Abmelden/Herunterfahren/Neustarten finde ich, im Standardfall, bei der VCL eine Katastrophe. Im Regelfall schießt Windows deine Anwendung knallhart ab sobald das Hauptformular zerstört wurde. Ich weiß nicht wie das mit den Dateipuffern ist- Vielleicht übernimmt er nur noch das "leermachen" der Datei, nicht mehr was dort hinein sollte?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.590 Beiträge
 
Delphi 12 Athens
 
#2

AW: Ini-Inhalt geht in sehr seltenen Fällen verloren (TMemIniFile)

  Alt 8. Jan 2016, 18:20
TMemIniFile schreibt nur in den WindowsFileCache, aber wann das auf der Platte landet, das entscheidet Windows.

Man kann natürlich die TMemIniFile auch so erweitern, daß sie (a) den Cache löscht und (b) notfalls auch noch ein Backup des alten Dateiinhaltes hält, so lange noch geschrieben wird.


Wie groß sind deine INI?
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 8. Jan 2016 um 18:25 Uhr)
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
475 Beiträge
 
Delphi 12 Athens
 
#3

AW: Ini-Inhalt geht in sehr seltenen Fällen verloren (TMemIniFile)

  Alt 8. Jan 2016, 22:12
Wie groß sind deine INI?
Unterschiedlich, je nach Verwendung. Sagen wir 10KB - 200KB. Spielt das eine große Rolle?

Man kann natürlich die TMemIniFile auch so erweitern, daß sie (a) den Cache löscht und (b) notfalls auch noch ein Backup des alten Dateiinhaltes hält, so lange noch geschrieben wird.
Ist das ein theoretischer Ansatz oder hast Du das schon irgendwo verwendet/gesehen? Wenn Du da Link oder Codeschnippsel für mich hättest, wäre das toll!
Nur Delphi schafft es, einem ein Lächeln zu schenken, wenn man sich beim Schreiben von := vertippt und stattdessen ein :) erscheint.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Ini-Inhalt geht in sehr seltenen Fällen verloren (TMemIniFile)

  Alt 8. Jan 2016, 22:48
Grundsätzlich lösen kann man das, wenn man keine Ini-Datei verwendet.

Will man die Ini-Datei meiden aber mit TIniFile trotzdem arbeiten, dann schreibt man sich einen Ableitung und legt z.B. eine SQlite DB darunter.

Das ist weniger Arbeit als man vermuten mag.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:39 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