Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   TMemIniFile: Vorteile, Nachteile, Einschränkungen (https://www.delphipraxis.net/193334-tmeminifile-vorteile-nachteile-einschraenkungen.html)

Der schöne Günther 20. Jul 2017 11:08

AW: TMemIniFile: Vorteile, Nachteile, Einschränkungen
 
Das würde mich jetzt aber auch interessieren.

Falsch kodierte Strings meinetwegen. Vielleicht Steuerzeichen im String?

himitsu 20. Jul 2017 11:18

AW: TMemIniFile: Vorteile, Nachteile, Einschränkungen
 
Was TMemIniFile kann, ist eine andere Sache ... die bassiert auf TStringList und kann beim Laden viele Encodings verstehen.

INI per se gibt es nur als ANSI oder Unicode (UTF-16).
Laut Definition der INI-API von Microsoft.

Uwe Raabe 20. Jul 2017 14:04

AW: TMemIniFile: Vorteile, Nachteile, Einschränkungen
 
Zitat:

Zitat von p80286 (Beitrag 1377078)
Schlußfolgerung: D10.x kann nicht mehr mit ANSI/Extended-ASCII umgehen?

TMemInifile verwendet das beim Create angegebene Encoding oder das durch das BOM angegebene oder ANSI, wenn kein BOM vorhanden ist (zumindest unter Windows). Vermutlich war hier aber ein UTF8-BOM vorhanden, es folgten dann aber Zeichen, die im UTF8 nicht vorkommen. Das ist schlichtweg nicht erlaubt und würde vermutlich auch mit älteren Delphi-Versionen nicht richtig funktionieren.

p80286 20. Jul 2017 14:33

AW: TMemIniFile: Vorteile, Nachteile, Einschränkungen
 
Wenn das der Fall sein sollte, das kann jedem(?) mal passieren, ist das persönliches Pech. Wer ungenießbare Daten produziert, soll sich nicht wundern wenn Programme damit nicht umgehen können.

Gruß
K-H

Michael II 21. Jul 2017 00:34

AW: TMemIniFile: Vorteile, Nachteile, Einschränkungen
 
Seit Umstellung auf TMemIniFile sehe ich bei einigen Kunden [Computerspiel => Kunden wissen teilweise nix über ihren PC] einen massiven Anstieg von "...kann nicht erstellt werden. Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird." Fehlern, wenn das MemIniFile geschrieben werden soll. Dies geschieht auch bei Memini-Files, welche genau einmal gelesen und einmal geschrieben werden.
Das ist natürlich kein Delphi/Emba Problem, sondern ein "AntivirusScanner-Problem" aber definitiv ein Kostenfaktor, wenn Support pauschal abgerechnet wird.

Wenn beim Schreiben was schief läuft (auch das ist nat. kein Delphi Problem), dann ist ein Teil der Daten oder der Inhalt der ganzen memini weg. (Auch das gab's schon wiederholt bei sehr wenigen Kunden.) Ich speichere deshalb jeweils vor dem Schreiben der Daten mittels SetStrings am Anfang und am Ende der Daten eine Versionsnummer ab und überprüfe beim Laden des MeminiFiles, ob diese Nummern am Anfang und am Ende vorhanden sind. Wenn die Marken vorhanden sind, dann erstelle ich ein Backup der Datei; wenn die Marken nicht vorhanden sind, dann lade ich das Backup.

Falls du die MemIni-Daten beim Beenden deines Programms speicherst, dann solltest du unbedingt daran denken, Windows möglichst am Runterfahren zu hindern, bis die MemIni-Daten auf Platte sind. [Das gilt natürlich generell, wenn du Daten speichern willst... ini-Files sind da aber natürlich toleranter...]

autosave/modified, GetStrings, SetStrings finde ich praktisch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:31 Uhr.
Seite 3 von 3     123   

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