XML AU LIEU DES FICHIERS INI (INIFILES)

yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017 - 20 févr. 2012 à 07:38
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 16 mars 2012 à 02:35
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/54088-xml-au-lieu-des-fichiers-ini-inifiles

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
16 mars 2012 à 02:35
Bon début mais quelques trucs ne vont pas :

On utilise pas le type TXMLDocument pour le type mais IXMLDocument (tout comme IXMLNode)
->
TXMLConfig = class
private
FXMLDoc: IXMLDocument;

Stocker le FileName est injustifié, Il y a déjà une propriété FileName dans TXMLDocument, FFileName à supprimer, faire deux méthode SetFileName/GetFileName sur FXMLDocument.FileName

N'oublie pas d'ajouter la clause Virtual au Create dans un soucis de dérivation de la classe, FileName est a renomer aFileName (a = argument) de type TFileName plutot que String.
->
constructor Create(const aFilename: TFileName); virtual; overload;
constructor Create; virtual; overload;

La structure XML est un peu brouillon :

il manque l'entête et l'encodage :
<?xml version="1.0" encoding="iso-8859-1"?>
ou
<?xml version="1.0" encoding="UTF-8"?>

Ne pas oublier les <[CDATA[]> pour protéger l'XML dans certains cas, il ne me semble pas en avoir vus la gestion, il suffit de definir le type ntCData dans le NodeType des ChildNodes (IXMLNode)
cela permet de stocker ... de l'XML, de l'HTML, du PHP, du texte français accentué dans une balise XML ou du texte en général.

Bon c'est tout pour le moment.
cs_daoudzd Messages postés 1 Date d'inscription vendredi 21 novembre 2008 Statut Membre Dernière intervention 20 février 2012
20 févr. 2012 à 12:24
Bonjour yvessimon essaye de changer les uses dans "MANPAGESRC.pas"
moi j'utilise Delphi XE2

uses
SysUtils,
Classes, TypInfo,
Controls, Forms, Dialogs, StdCtrls,
uCiaXml, ComCtrls, inifiles, Buttons, ExtCtrls;

(*) Je n’ai pas testé mais je crois que ça marchera.
yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017
20 févr. 2012 à 07:38
Bonjour,

Dommage à la compilation il ne trouve pas Vcl.Forms
Rejoignez-nous