Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Setup läßt Reste in INI-Dateien zurück


3 replies to this topic

pharao2k

pharao2k
  • Members
  • 2 posts

Posted 29 March 2006 - 14:34

Hallo zusammen!

Ich hab seit kurzem auch das Glück, mit IS 11.5 arbeiten zu dürfen / müssen.


Folgende Situation:

Setup muss u.A. nach dem Installationsprozess verschiedene INI-Dateien editieren. Die Sektionen in den INIs sind immer nach dem Muster [Sektionsname.xyz] aufgebaut, wobei xyz immer eine fortlaufende, dreistellige Nummer darstellt.

Das ist soweit auch kein Problem, habe mit InstallScript auch eine Funktion gecodet, die alle vorhandenen Sektionen ausliest und dann nach der letzten gefundenen Sektion eine neue einfügt, wobei die Nummer um eins erhöht wurde. Auch dieser Teil der Funktion geht ohne Probleme.

Problem:
Wenn die Installation abgebrochen wird bzw. die Deinstallation aufgerufen wird, werden die erstellten Schlüssel problemlos aus der INI-Datei gelöscht, aber die Sektion, z.B. [Sektion.123] bleibt in der INI-Datei zurück und wird nicht gelöscht.
Die Sektion muss allerdings auch gelöscht werden, sonst kann die Installierte Anwendung leicht Fehler produzieren.

Ich füge die Einträge wie folgt zur INI-Datei hinzu:

WriteProfString (INI_FILE,szNewSectionName,"","");
WriteProfString (INI_FILE,szNewSectionName,"Key1",sValue1);
WriteProfString (INI_FILE,szNewSectionName,"Key2",sValue2);
WriteProfString (INI_FILE,szNewSectionName,"Key3",sValue3);
WriteProfString (INI_FILE,szNewSectionName,"Key4",sValue4);

...wobei szNewSectionName ein String ist mit dem Format / Inhalt z.B. Section.123 ist. Schreiben in die Datei ist wie gesagt kein Problem, aber die Sektion wird nicht gelöscht.

Vielleicht kann mir ja jemand weiterhelfen!!

Danke!

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 30 March 2006 - 09:29

Was passiert wenn du diese Zeile weglässt:
WriteProfString (INI_FILE,szNewSectionName,"","");
die ist ja eigentlich sowieso überflüssig, denn du stellst ja über die Nummern sicher, dass es die Sektion nicht gibt.

pharao2k

pharao2k
  • Members
  • 2 posts

Posted 30 March 2006 - 17:09

QUOTE
WriteProfString (INI_FILE,szNewSectionName,"","");


Stimmt, die Zeile ist wirklich überflüssig. Hab die Zeile entfernt aber der Rest bleibt immer noch zurück. Dabei ist mir aufgefallen, dass zwischen dem letzten Eintrag der vorherigen Sektion und der neu erstellten Sektion keine Leerzeile ist.

Bsp:

.
..
Eintrag=Wert
[NEUESEKTION.123]
NeuerEintrag=NeuerWert
..
.


Sollte doch kein Problem sein, oder?



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 01 April 2006 - 13:57

Nö sollte kein Problem sein.
Notfalls könntest du
WriteProfString (INI_FILE,szNewSectionName,"","");
in das Uninstall Event Script schreiben.