Uniformisation des procedure s'install des plugins (1 Viewer)

P

pitie

Guest
Operation classique :
Code:
<ADD> <===== ADD ajoute/ecrase/modifie, DEL supprime
    <reg> <===== ajoute/modifie une clef
  <path>KEY_PATH</path>  <===== exemple : HKEY_LOCAL_MACHINE\SOFTWARE\toto
  <key>KEY</key> <===== exemple : maclef
  <value>VALUE</value> <===== exemple : mavaleur
    </reg>
    <file> <===== gestion des fichier
  <output_name>RENAMED_FILENAME</output_name> <===== exemple : mon_plugin.dll
  <input_name>PACKAGED_FILENAME</input_name> <===== exemple : mpg.dll
  <output_dir>PATH_TO_COPY</output_dir> <===== exemple : %plugname%
  <type>TYPE_OF_PLUGIN</type> <===== exemple : process/window...
    </file>
    <string>
  <id>ID_DU_PLUGIN.NUMERO_DU_TEXTE</id><===== exemple : 455598
  <value>TEXTE</value> <===== exemple : ceci est du texte
  <lang>LANGUAGE</lang> <===== exemple pour fr : FRENCH
    </string>
</ADD>

a completer biensur

EDIT j'avais laisser configs au lieu de ADD
pour la desinstallation, simplement enlever ce que ADD aura fait
une gestion des ini est aussi envisageable.
<file> est a remanier car c laborieux de taper a chaque fois le type...
 
G

guilhem

Guest
Par rapport à ta solution de zip et fichier xml....
Comment cela marche ?
C'est le zip qui grace au fichier xml met tout là où il faut
Ou bien, après dézippé tu as un process qui fait tout bien (plugin ou autre) en luisant le xml.

Car la première solution, je ne vois pas comment cela marche.
 
P

pitie

Guest
il faut qu'on repartisse les taches.

langage c# je suppose ?

developpement des classe :
= gestion fichier MPI (methode open, getconfigfile, extractto, close)
= gestion du XML (open, getparam, close)
= gestion registre et ini (writeINI, deleteINI, writeREG, deleteREG)
= gestion mpi - necessite les 2 classes ci dessus (install, uninstall)
= interface

je me lance sur la gestion xml (le plus facile
<
)
 
P

pitie

Guest
Originally posted by guilhem@30 Mar 2006, 14:49
Par rapport à ta solution de zip et fichier xml....
Comment cela marche ?
C'est le zip qui grace au fichier xml met tout là où il faut
Ou bien, après dézippé tu as un process qui fait tout bien (plugin ou autre) en luisant le xml.

Car la première solution, je ne vois pas comment cela marche.
<div align="right"><{POST_SNAPBACK}>
[/quote]
ma solution a ete enclapsé dans des projet en VB.
elle a de l'age donc autant en refaire une neuve !
 
G

guilhem

Guest
Tu y est tout le temps dessus .....
Tu travailles pas , tu fais grèves
<


Moi perso, je suis au boulot (d'ailleur j'ai pas fait grand chose depuis ce matin...)
Donc j'essayerai de regarder ce soir...

Tu as vu la page wiki, à la rigueur si tu finalise un formal xml tu peux le mettre dessus.

J'ouvrirai un projet sous le serveur CVS de MP comme cela on pourra se partager les sources...
 
P

pitie

Guest
Originally posted by guilhem@30 Mar 2006, 15:29
Tu y est tout le temps dessus .....
Tu travailles pas ,  tu fais grèves
<


Moi perso, je suis au boulot (d'ailleur j'ai pas fait grand chose depuis ce matin...)
Donc j'essayerai de regarder ce soir...

Tu as vu la page wiki, à la rigueur si tu finalise un formal xml tu peux le mettre dessus.

J'ouvrirai un projet sous le serveur CVS de MP comme cela on pourra se partager les sources...
<div align="right"><{POST_SNAPBACK}>
[/quote]

je suis commerçant sur internet...
j'ai donc 4h de preparation de colis le matin et l'aprem a part faire les factures, repondre au mails/tel je dev pour des boite et/ou pour moi
<


(en gros)

bon aller la classe XML :
Code:
/*
 * Created by SharpDevelop.
 * User: Pitie
 * Date: 30/03/2006
 * 
 * Gestion XML pour l'installeur MPI de Media Portal
 * 
 * Version 1.0
 * 
 */

using System;
using System.Xml;
using System.Data;

namespace mpi
{
    /// <summary>
    /// Permet la lecture des fichiers de config d'un MPI
    /// </summary>
    public class xmlinstallfile
    {
  private DataSet _oDS = new DataSet();
  private string _sFileName;
  
  /// <summary>
  /// Permet la lecture des fichiers de config d'un MPI
  /// </summary>
  /// <param name="sFileName">Chemin du fichier XML à utiliser</param>
  /// <returns></returns>
  public xmlinstallfile(string sFileName)
  {
      this.FileName = sFileName;
  }
  
  /// <summary>
  /// Fichier XML à lire
  /// </summary>
  public string FileName {
      get {return _sFileName;}
      set {
    try {
        _oDS.ReadXml(value);
        _sFileName = value;
    }
    catch (System.IO.FileNotFoundException ex) {
        //le fichier existe pas ???
    }
      }
  }
  /// <summary>
  /// Retourne la valeur contenue
  /// </summary>
  /// <param name="sType">Type de données demandés (file, reg, ini ou string)</param>
  /// <param name="sName">Champ à retourner</param>
  /// <param name="id">Position de l'enregistrement (index 0)</param>
  /// <returns>"" s'il n'a pas trouvé</returns>
  public string getValue(string sType, string sName, int id)
  {
      if (_oDS.Tables.Count == 0)
    return "";

      if (_oDS.Tables[sType].Rows.Count > 0)
      {
    DataRow oRow=_oDS.Tables[sType].Rows[id];
    return oRow[sName].ToString();    
      }
      return "";
  }
  
  /// <summary>
  /// Renvoi le nombre d'enregistrements disponibles
  /// </summary>
  /// <param name="sType">Type de données demandés (file, reg, ini ou string)</param>
  /// <returns>-1 en cas d'erreur sinon le nombre d'enregistrements</returns>
  public int Count(string sType)
  {
      if (_oDS.Tables.Count == 0) 
    return -1;
      return _oDS.Tables[sType].Rows.Count;
  }
  
    }
}

Exemple d'utilisation :
Code:
      xmlinstallfile myxml=new xmlinstallfile("c:\\toto.xml");
      for (int i=0;i<myxml.Count("file");i++){
    log.Text+= "\n'"+myxml.getValue("file","type",i)+"'";
      }


je commence gestion fichier MPI
 
P

pitie

Guest
Originally posted by pitie@30 Mar 2006, 15:04
developpement des classe :
= gestion fichier MPI (methode open, getconfigfile, extractto, close)  - EN COURS
= gestion du XML (open, getparam, close)  - FAIT
= gestion registre et ini (writeINI, deleteINI, writeREG, deleteREG)
= gestion mpi - necessite les 2 classes ci dessus (install, uninstall)
= interface

<div align="right"><{POST_SNAPBACK}>
[/quote]
 

Scubefr

Portal Pro
May 19, 2004
8,603
4
ailleurs
Home Country
France France
ca avance vite je pense que ce prohet est une tres bonne base pour tous les autres !!! merci a vous tous c'est vraiment du bon boulot !!!
 
P

pitie

Guest
Originally posted by Scubefr@30 Mar 2006, 18:57
ca avance vite je pense que ce prohet est une tres bonne base pour tous les autres !!! merci a vous tous c'est vraiment du bon boulot !!!
<div align="right"><{POST_SNAPBACK}>
[/quote]

Comme tu dis
<


bon aller la class MPI :
Code:
/*
 * Created by SharpDevelop.
 * User: Pitie
 * Date: 30/03/2006
 * 
 * Gestion des fichier MPI pour l'installeur MPI de Media Portal
 * 
 * Version 1.0
 * 
 */

using System;
using ICSharpCode.SharpZipLib.Zip;
using System.IO;

namespace mpi
{
    /// <summary>
    /// Gestion des fichiers MPI
    /// </summary>
    public class mpiFile
    {
  private string _sFileName;
  /// <summary>
  /// Gestion des fichiers MPI
  /// </summary>
  /// <param name="sFileName">Fichier MPI à lire</param>
  /// <returns></returns>
  public mpiFile(string sFileName)
  {
      this.FileName = sFileName;
  }
  
  /// <summary>
  /// Fichier MPI à lire
  /// </summary>
  public string FileName {
      get {return _sFileName;}
      set {_sFileName = value;}
  }
  
  /// <summary>
  /// Extrait le fichier d'installation
  /// </summary>
  /// <param name="sOutputFilename">Chemin ou sera enregistré le fichier</param>
  /// <returns>True si c'est OK</returns>
  public bool saveInstallFile(string sOutputFilename){
      return saveFile("install.xml", sOutputFilename);
  }
  
  /// <summary>
  /// Extrait un fichier
  /// </summary>
  /// <param name="sFileToExtract">Nom du fichier</param>
  /// <param name="sOutputFilename">Chemin ou sera enregistré le fichier</param>
  /// <returns>True si c'est OK</returns>
  public bool saveFile(string sFileToExtract, string sOutputFilename){
      try    {
    ZipEntry _fileentry;
    ZipInputStream _zfile = new ZipInputStream(File.OpenRead(_sFileName));
    
    if (sOutputFilename.Length>0 && sFileToExtract.Length>0){

        while ((_fileentry = _zfile.GetNextEntry()) != null) {
      if (_fileentry.Name == sFileToExtract){
          int size = 2048;
          byte[] buffer = new byte[2048];
          System.IO.Stream tmpf = File.Create(sOutputFilename);
          while (true) {
        size = _zfile.Read(buffer, 0, buffer.Length);
        if (size == 0)
            break;
        tmpf.Write(buffer, 0, size);

        
          }
          tmpf.Close();
          return true;
      }
        }
    }
    return false;
      }
      catch{
    return false;
      }
  }
  
  /// <summary>
  /// Obtient la liste des fichiers present dans l'archive
  /// </summary>
  /// <returns>Liste des fichiers présents</returns>
  public string[] GetFileList(){
      string tmpstr = null;
      try    {
    ZipFile _zfile = new ZipFile(File.OpenRead(_sFileName));
    foreach(ZipEntry z in _zfile){
        tmpstr+=";"+z.Name;
    }
    return tmpstr.Substring(1).Split(';');
      }
      catch{
    return null;
      }
  }
    }
}

je vais pas tout faire non ?
 
P

pitie

Guest
pour lister le contenu :
Code:
      mpiFile mympi=new mpiFile(@"c:\toto.mpi");
      string[] tmpstr = mympi.GetFileList();
      if (tmpstr != null)
      foreach (string s in tmpstr)
    log.Text+="\n"+s;

pour extraire un fichier :
Code:
      mympi.saveFile("80798dddddd.JPG",@"c:\tot.jpg");
 

Users who are viewing this thread

Top Bottom