AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein NSIS Installer schreibt nicht alles in XML Datei
Thema durchsuchen
Ansicht
Themen-Optionen

NSIS Installer schreibt nicht alles in XML Datei

Ein Thema von TUX_der_Pinguin · begonnen am 5. Feb 2009 · letzter Beitrag vom 9. Feb 2009
Antwort Antwort
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#1

NSIS Installer schreibt nicht alles in XML Datei

  Alt 5. Feb 2009, 09:58
Ich habe für meine Anwendung einen Installer gebaut mit dem Tool NSIS (Nullsoft Scriptable Install System) mit Hilfe
eines XML Plugins sollen ein paar Dinge während der Installtion in eine Einstellungsdatei gespeichert werden.

Ansich keine Sache, nur muß ich bei einem Knoten ein Attribut und auch den 'Text' ändern jedoch klappt immer nur eins
nicht beides. Ich hoffe jemand hat eine idee woran es liegen könnte.

Die XML Datei sieht folgender maßen aus...
XML-Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<settings>
    <app>
        <window maximized="true">
            <position left="15" top="45" width="1205" height="853" />
        </window>
        <Lang code="de" id="0" />
        <ExportDir />
    </app>
    <dbase>
        <localDataDir ProgDir="false" AppDir="true" Directory="false" />
        <remoteDataDir NetBackup="true">C:\Temp\DOH</remoteDataDir>
    </dbase>
</settings>

Im installer werden erst 3 RadioButtons abgefragt und dann die Attribute vom Knoten 'localDataDir' gespeichert
was auch soweit klappt. Im zweiten Schritt soll das Attribut 'NetBackup' vom Knoten 'remoteDataDir' auf "false"
gesetzt werden sowie der zuvor vom Anwender eingebene Pfad als Knoten Text gespeichert werden. Zur zeit Funktionier
nur letzters.

Code:
          ;Flags auslesen
          !insertmacro MUI_INSTALLOPTIONS_READ $TempResult "io.ini" "Field 3" "State"
          ${IF} $TempResult == 1
            StrCpy $bProgDir true
          ${ELSE}
            StrCpy $bProgDir false
          ${ENDIF}
         
          !insertmacro MUI_INSTALLOPTIONS_READ $TempResult "io.ini" "Field 4" "State"
          ${IF} $TempResult == 1
            StrCpy $bAppDir true
          ${ELSE}
            StrCpy $bAppDir false
          ${ENDIF}
         
          !insertmacro MUI_INSTALLOPTIONS_READ $TempResult "io.ini" "Field 5" "State"
          ${IF} $TempResult == 1
            StrCpy $bDirectory true
          ${ELSE}
            StrCpy $bDirectory false
          ${ENDIF}
         
        ;Verzeichnis für Geräte-Daten auslesen
          !insertmacro MUI_INSTALLOPTIONS_READ $Dir "io.ini" "Field 8" "State"
          StrCpy $bNetBackup false

        ;Einstellungen in XML Datei speichern...
        ${xml::LoadFile} "$DYNFILES\${FILE_DYN_SETTINGS}" $0

        ${xml::GotoPath} "/settings/dbase/localDataDir" $0
        ${xml::FirstChild} "" $0 $0
        ${xml::SetAttribute} "ProgDir" $bProgDir $0
        ${xml::SetAttribute} "AppDir" $bAppDir $0
        ${xml::SetAttribute} "Directory" $bDirectory $0

        ${xml::GotoPath} "/settings/dbase/remoteDataDir" $0
        ${xml::FirstChild} "" $0 $0
        ${xml::SetAttribute} "NetBackup" $bNetBackup $0
        ${xml::SetNodeValue} $Dir
       
        ${xml::SaveFile} "$DYNFILES\${FILE_DYN_SETTINGS}" $0

        ${xml::Unload}
Ich bin zur Zeit total ratlos wieso das eine klappt jedoch das andere nicht bzw. nicht beides zusammen.
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: NSIS Installer schreibt nicht alles in XML Datei

  Alt 6. Feb 2009, 10:04
Langsam verzweifel ich an der Sache, wieso das so schwer ist ein paar Optionen in einer XML Datei zu ändern.

Bisher habe ich weder neue ideen oder einen Ansatz gefunden wie es gehen könnte.
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: NSIS Installer schreibt nicht alles in XML Datei

  Alt 9. Feb 2009, 13:07
So ich habe endlich den Fehler gefunden es lag unter anderem an der Reihenfolge der einzelnen Befehle.

Um ein Attribut eines Knoten zu ändern, reicht es aus den Knoten anzuwählen mit "GotoPath" mit
SetAttribute läßt sich das Attribut dann entsprechend ändern. Will man den Text bzw. Knoten Wert
ändern so bedarf es einen aufruf von "FirstChild" hiermit wird das Textelement ausgewählt und mit
SetNodeValue kann man dieses Element ändern.

Code:
;load XML file
${xml::LoadFile} "$DYNFILES\${FILE_DYN_SETTINGS}" $0

;localDataDir
${xml::GotoPath} "/settings/dbase/localDataDir" $0
${xml::SetAttribute} "ProgDir" $bProgDir $0
${xml::SetAttribute} "AppDir" $bAppDir $0
${xml::SetAttribute} "Directory" $bDirectory $0

;remoteDataDir
${xml::GotoPath} "/settings/dbase/remoteDataDir" $0
${xml::SetAttribute} "NetBackup" $bNetBackup $0
${xml::FirstChild} "" $0 $1
${xml::SetNodeValue} $Dir

;save XML file
${xml::SaveFile} "$DYNFILES\${FILE_DYN_SETTINGS}" $0
${xml::Unload}
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:20 Uhr.
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