![]() |
INI wird abgeschnitten unter 98
Moin !
Wir haben bei unserer Anwendung ein komisches Problem. Und zwar wird die INI abgeschnitten. Das passiert z.B. hier:
Delphi-Quellcode:
Da wird dann nach der Zeile alles abgekappt.
DeviceINI := TINIFile.Create(INIFile);
DeviceINI.WriteBool('Gerät', 'Used', ListView1.Items[_i].Checked); DeviceINI.UpdateFile; DeviceINI.Free; Hat jemand eine Idee was dieses Problem verursachen kann? Weil unter >= 2k geht es stressfrei. :gruebel: |
Re: INI wird abgeschnitten unter 98
Moin, Moin,
obwohl ich es mir eigentlich nicht so recht vorstellen kann: Ist das "Free" vielleicht schneller als "UpdateFile"? |
Re: INI wird abgeschnitten unter 98
Moin !
Hmm, aber müsste nicht erst das Update zuende laufen und dann das Free kommen? Das würde ja bedeuten das Update als selbstständiger Thread laufen müsste :gruebel: |
Re: INI wird abgeschnitten unter 98
Na ja, wie gesagt, wäre schon seltsam, aber etwas anderes fällt mir als mögliche Ursache dazu nicht ein :?
|
Re: INI wird abgeschnitten unter 98
Wie groß ist die INI Datei? Bei 9x existiert glaube ich ein 64kb Limit.
|
Re: INI wird abgeschnitten unter 98
Die größe INI die wir haben ist 45kb.
Und die um die es hier gerade geht ist nur 7k |
Re: INI wird abgeschnitten unter 98
Ich hoffe INIFile ist ein Absoluter Dateiname? Wie sieht die INI nach dem Truncaten aus? Steht da dann ausschließlich der Bool Wert drin oder stehen dort bis zum Boolwert noch alte Daten drin, aber ab dort dann nichts mehr?
|
Re: INI wird abgeschnitten unter 98
Hallo,
ich hab UpdateFile beim Ändern von Ini-Dateien noch nie benutzt. Sollte auch ohne funktionieren. Ich würd das einfach mal ausprobieren. MfG Klaus |
Re: INI wird abgeschnitten unter 98
Moin !
Dateiname ist komplett mit Pfad. Nach dem abschneiden steht alles drin bis zu dem Boolwert. Und ab dann is leer. Das passiert aber nicht nur bei einem Boolwert. Auch bei einem String passiert das gleiche. Updatefile ... Hatten wir vorher nicht drin. Ging auch nicht. |
Re: INI wird abgeschnitten unter 98
Hallo,
passiert das gleiche wenn Du anstelle von TIniFile TMemIniFile nimmst? Grüße Klaus |
Re: INI wird abgeschnitten unter 98
Moin Klaus,
das mit TMemIni muss ich erst testen. Kann ich noch nicht sagen. Werde ich gleich mal probieren. |
Re: INI wird abgeschnitten unter 98
Hm ... das artet bei mir jetzt bissi in Raten aus. Haben die Win9x Profile APIs evtl. Probleme mit Umlauten? Ansonsten bliebe immer noch die Möglichkeit auf eine alternative INI File Komponente zu setzen, die dann auch gleich die Größenlimitierung von 64kb entfernt. Als durchaus brauchbar hat sich da IniFiles32 erwiesen von Stephan Schneider:
![]() |
Re: INI wird abgeschnitten unter 98
So ebdlich den Test gemacht ...
Wenn ich TMemIniFile nutze bleibt alles heile. Alles geht. Kann sich da nun jemand einen Reim drauf machen ?? Ich gerade nicht :shock: :gruebel: |
Re: INI wird abgeschnitten unter 98
TIniFile nutzt die Windowsfunktionen. Wenn dein Windows da eine beschränkung drin hat oder mit Umlauten nicht klar kommt etc. kann sowas passieren. TMemIniFile setzt glaub ich nicht so auf die Windowsfunktionen auf und ist damit nicht an die Windowsgrenzen gebunden.
|
Re: INI wird abgeschnitten unter 98
Also die Ini kommt mit Umlauten klar, das habe ich schon mehrmals getestet. Was ich weiß, daß unter 98 die Dateigröße auf 64 kB beschränkt war. Ob es bei XP immer noch so ist weiß ich nicht. Sollte man mal überprüfen. Außerdem ist die maximale Zeilenlänge bei Ini 1024 Zeichen. War zumindest unter 98 so. Alles darüber war weg.
Eines kann man sich sicher sein, Free wird nicht ausgeführt bevor die Zeile davor ausgeführt wurde. Wenn eine INI abgeschnitten wurde, dann gibt es nur zwei Möglichkeiten: - die Routine wurde vorher verlassen - es schlich sich ein Null rein Ich tippe auf das Zweite. Untersuche die Datei mal mit einem Hexeditor. Prüfe ob dazwischen, bzw. nach dem Eintrage eine Null im Text ist. Der Text selbst kann länger sein, aber ein Editor wird bei Null Schluß machen. |
Re: INI wird abgeschnitten unter 98
Hallo,
alle diese Vermutungen sind falsch. Win98 kann maximal 64k Ini Dateigrösse verwalten. Danach wir alles abgeschnitten. Dies geschieht völlig unkoordiniert und völlig wahrlos. Es können Zwischenstücke fehlen oder auch ganze Teile. Sicher kann man nur bis zu einer Grösse von ca 40k sein. Dass kleinere Dateien auch schon abgeschnitten werden liegt daran, dass temporär die 64k überschritten werden. Wie das funktioniert und wie das passiert entzieht sich meiner Kenntnis. Bei uns (Elster Group) gab es jede Menge Experimente dazu, die dann dazu geführt haben, dass unsere Programme für Win98 gesperrt wurden. Grüsse Rainer |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:23 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