![]() |
Re: Was passiert mit der INI-File beim beschreiben ?
Zitat:
|
Re: Was passiert mit der INI-File beim beschreiben ?
@Hansa:
No :warn: Eine Inidatei ist nicht eine stinknormale Textdatei. Eine Inidatei ist nach einem festen Schema aufgebaut, und zwar in Sections (oder Gruppen) organisiert, deren Namen in eckigen Klammern eingefaßt sind. Innerhalb dieser Sections stehen Einträge im Format <Identifier> = <Value>. Der Zugriff erfolgt mit den Methoden von TIniFile, wobei Einträge nur mit Angabe des Sections-Namen manipuliert werden können. Z.B.
Delphi-Quellcode:
Inifile.WriteString(Section, Identifier, Value);
Die Datei-Extension ist allerdings wurscht, da stimm ich dir zu. Es hat sich aber .ini etabliert. Roderich |
Re: Was passiert mit der INI-File beim beschreiben ?
Zitat:
|
Re: Was passiert mit der INI-File beim beschreiben ?
Zitat:
Diese *.~Pas dateien sind einfach nur Backupfiles die von Delphi angelegt werden. |
Re: Was passiert mit der INI-File beim beschreiben ?
INI-Files werden nicht gelöscht und neu geschrieben. Wers nich glauben will, darfs gerne ausprobieren. Wenn man vorher 2 sections hatte, diese läd, und dann im Inifile mit writesection nur eine am ende wieder schreibt, is die 2te trotzdem noch drin. Deswegen das INI vor dem beschreiben mit DeleteFile() löschen.
|
Re: Was passiert mit der INI-File beim beschreiben ?
Danke Leute, nun habe ich Gewissheit weil es mich zunächst verwirrt hatte als ich es in ein Text Editor angeschaut habe. Also werde ich wohl die Ini löschen bevor ich es neu schreibe.
Oder wenn man auf der sichere Seite will das die Speicherfunktion unterbrochen wird sollte man doch lieber die Ini zunächst Temporär speichern, dieses dann die Ini überschreiben und dann die Temporäre Datei wieder löschen. Übrigens INI ist zwar anders eingeteilt mit Section u.s.w. aber so oder so sie ist trotzdem eine Text Datei. Man könnte auch eine BlaBla.XYZ als Ini File benutzen anstatt BlaBla.Ini . |
Re: Was passiert mit der INI-File beim beschreiben ?
also, um das ganze leidige Thema mal abzuschließen.....
Inidateien sind (natürlich) Textdateien, genau wie *.pas, *.c, *.bat, ... und 1000 andere -> sie sind also z.B. mit einem Texteditor lesbar. Sie sind aber nach ihrer Definition nicht "ganz normale" Textdateien, sondern in einem festen Format aufgebaut. Dieses Format sieht Gruppen (Sections) vor, innerhalb derer die Einträge (Identifier) stehen. Gruppen sind in eckigen Klammern [] eingefaßt. Einträge werden immer von einem "=" Zeichen gefolgt, nach dem der Wert (Value) steht. Beispiel: [System] GUI=1 Bootlogo=Splash.bmp [Printer] Default=HP Deskjet So, falls jetzt mit Inifile.WriteString('Printer', 'Default', 'Epson Stylus') der Default-Eintrag in der Printer-Gruppe geändert wird, bleibt NATÜRLICH auch die erste Gruppe "System" bestehen. Wär ja auch schlimm, wenn nicht. Wenn mit Inifile.DeleteKey('Printer', Default') der Default-Eintrag gelöscht wird, bleibt die Gruppe "Printer" trotzdem bestehen, nur eben leer (d.h. ohne Einträge). Eine Inidatei löschen zu müssen, bevor sie neu geschrieben wird, deutet zumindest mal auf ein "seltsames" Programmkonzept hin. Oder Inidateien werden dort nicht in ihrem eigentlichen Sinn verwendet. Die Delphi-Hilfe zu TIniFile erklärt das Konzept übrigens auch recht gut. Roderich |
Re: Was passiert mit der INI-File beim beschreiben ?
//EDIT: Dieses Posting hat sich mit dem von roderich zuvor überschnitten.
-------------------------------------------------------------------------- Oh man, ihr habt aber auch alles in den Thread reingeschmissen, was es zum Thema Datei gibt, wie? :shock: Zitat:
Wenn du eine Ini als das benutzt, wofür sie da ist, was gibt es dann für Probleme? Wenn du eine Ini bearbeiten wilst, dann tue das über TIniFile. Damit stehen dir genügend Methoden zur Verfügung, die Bestandteile einer Ini (Sektionen, Schlüssel und Werte) zu lesen, zu schreiben oder zu löschen. Diese Bestandteile einer Ini sind separat zu betrachten und zu bearbeiten. Dabei ist es völlig egal, in welchem Fileformat eine Ini auf die Platte geschrieben wird. Und ja, das Fileformat ist Textfile. Es ist ein Textfile mit vorgegebener inhaltlicher Struktur (Sektionen, Schlüssel, Werte). Eben der Struktur einer gemeinhin als Ini bezeichneten Datei. Wenn du die Sektion A bearbeitest, bleibt Sektion B natürlich unberührt. Das ist doch gerade der Witz an TIniFile, dass du die Bestandteile einer Ini separat bearbeiten kannst und nicht die ganze Datei lesen, bearbeiten und zurückschreiben musst. Änderungen (schreiben, löschen) sind bei NT (und in der Familie aufwärts) sofort in die Ini-Datei auf der Platte eingepflegt. Bei Windows95 (und spätere Verwandte) wird der Plattenzugriff möglicherweise noch gepuffert. Da kann man dann aber das Schreiben auf Platte mit TIniFile.UpdateFile erzwingen. |
Re: Was passiert mit der INI-File beim beschreiben ?
Damit keine Missverständnisse gibt.
Ich verwende die Ini Datei (eine einzige Datei) um die Einstellungen u.s.w. im Programm zu speichern. Klar die braucht man dann nicht zu löschen u.s.w. ABER ich verwende diese Datei auch um die Daten aus einer ListView zu speichern (darüber kann man streiten da andere Möglichkeiten gibt). Und gerade wenn ich die Daten speicehre wird es in Section Data1 Data2 u.s.w. erstellt. Sobald ich aber mal 100 Data gespeichert habe. Und irgendwann dann die 50 Datas lösche dann stehen die "alten" 50 Datas immer noch drin. Also wird die Datei nur unötig aufgebläht obwohl nicht mehr benötigt wird. Deswegen das löschen. |
Re: Was passiert mit der INI-File beim beschreiben ?
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:27 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