Bonjour,
J'essaie de mettre en place dans Inno Setup un moyen de créer un fichier de configuration tel que je l'utilise ensuite avec mon application écrite en VB6.
J'arrive à créer un DOMDocument et à le sauver, par contre si j'essaie de le formater avec la routine ci-dessous, le fichier est bien sauvé mais il est vide !
Voici le code que j'utilise en VB :
Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 ' Add formatting to the document. Private Sub FormatXmlDocument(ByVal xmlDoc As DOMDocument) Dim rdr As SAXXMLReader Dim wrt As MXXMLWriter Set rdr = New SAXXMLReader Set wrt = New MXXMLWriter wrt.Indent = True wrt.encoding = "ISO-8859-1" wrt.output = xmlDoc Set rdr.contentHandler = wrt Set rdr.ErrorHandler = wrt rdr.parse xmlDoc wrt.Flush Set rdr = Nothing Set wrt = Nothing End Sub
... et voici la traduction pour Inno setup (je ne suis pas un spécialiste en delphi ...)
Bon, j'ai déjà du mal à comprendre comment cela fonctionne en VB (j'ai bêtement recopié un exemple de code), parce que on passe le document par valeur (?) et à la fin le document se retrouve bien formaté dans la routine appelante !? alors que pendant le traitement après le parse y'a plus rien ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 procedure FormatXmlDocument(const xmlDoc: variant); var rdr, wrt: variant; begin rdr := CreateOleObject('MSXML2.SAXXMLReader'); wrt := CreateOleObject('MSXML2.MXXMLWriter'); wrt.Indent := True; wrt.encoding := 'ISO-8859-1'; wrt.output := xmlDoc; rdr.contentHandler := wrt; rdr.ErrorHandler := wrt; MsgBox(xmlDoc.XML, mbInformation, MB_OK); rdr.parse(xmlDoc); MsgBox(xmlDoc.XML, mbInformation, MB_OK); wrt.Flush(); //MsgBox(xmlDoc.XML, mbInformation, MB_OK); rdr := Unassigned(); wrt := Unassigned(); //MsgBox(xmlDoc.XML, mbInformation, MB_OK); end;
Dans Inno setup ça fait un peu pareil , après le parse, plus rien, mais en sortie plus rien non plus.
J'ai essayé de passer le document par référence, mais pas mieux ! J'en appelle donc à ceusses qui savent ...
Merci d'avance
Je joins le fichier iss (testXML.zip) qui me sert pour test.
Thierry
Partager