IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

VBS ré-ordonner les Sections dans un fichier INI


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 13
    Points : 14
    Points
    14
    Par défaut VBS ré-ordonner les Sections dans un fichier INI
    Bonjour,

    J'ai besoin d'un code VBS pour lire et écrire dans un fichier INI avec ADODB.Stream, en outre je souhaite ré-ordonner des sections.

    Voici le fichier INI :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    [General]
    Title=Prepar3D Scenery
    Description=Prepar3D Scenery Areas Data
    Clean_on_Exit=TRUE
    
    [Area.001]
    Title=Default Terrain
    Texture_ID=1
    Local=Scenery\World
    Layer=1
    Active=TRUE
    Required=TRUE
    
    [Area.002]
    Title=Default Scenery
    Local=Scenery\BASE
    Layer=2
    Active=TRUE
    Required=TRUE
    
    [Area.003]
    Title=0000 Base
    Local=Scenery\0000
    Layer=3
    Active=TRUE
    Required=FALSE
    
    [Area.008]
    Title=0001 Base
    Local=Scenery\0001
    Layer=4
    Active=TRUE
    Required=FALSE
    
    [Area.009]
    Title=0002 Base
    Local=Scenery\0002
    Layer=5
    Active=TRUE
    Required=FALSE
    
    [Area.010]
    Title=0003 Base
    Local=Scenery\0003
    Layer=6
    Active=TRUE
    Required=FALSE
    Ce que je souhaite c'est créer un script qui va ré-ordonner la section [Area.XXX], si l'on regarde à [Area.003] on constate que la prochaine section est [Area.008], il y a donc un trou entre 003 et 008, quel est le code qui me permettrait de remettre les sections [Area.XXX] dans l'ordre logique d'une suite numérique ?

    Merci beaucoup pour votre précieuse aide.

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    Re,
    Ordonner (Trier) les sections et les renuméroter ce n'est pas la même problématique
    S'il s'agit de les renuméroter il faudra obligatoirement utiliser les expressions régulières.
    Je n'ai pas le temps de te donner la solution mais vite fait l'analyse devrait
    consister à récupérer tous les noms de section que tu retrouveras dans une collection SubMatches
    et à renommer leur contenu avec l'indice (corrigé) de l'item.
    ex :
    SubMatches(0)="Area.001"
    SubMatches(1)="Area.003" -> "Area.002" (indice+1)
    SubMatches(2)="Area.008" -> "Area.003" (indice+1)

    Avec un peu de chance, les éléments de la collection doivent être ramenés dans l'ordre du fichier

    Pour t'inspirer il existe un exemple de manipulation des fichier INI dans les contribs
    que j'ai oublié de mettre dans la FAQ
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 13
    Points : 14
    Points
    14
    Par défaut
    Bonjour omen999,

    Merci beaucoup pour l'aide apportée, mais il m'ai extrêmement difficile de me créer mon propre code même avec l'aide de l'exemple de manipulation, je perds énormément de temps quand je suis confronté à une erreur dans le code... Néanmoins, je comprend quand même la substance du code.

    En partant du principe que le fichier ini doit être lu et écrit avec ADODB.Stream quel serai le code qui pourrai exécuter la requête ?

    Merci mille fois.

    J'ai ce code pour lire le fichier ini :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Set IniStream=CreateObject("ADODB.Stream")
    IniStream.Open 
    Inistream.Charset="_autodetect_all"
    IniStream.LoadFromFile "scenery.cfg"
    IniFile=IniStream.ReadText
     
    //le code pour ré-ordonner les sections ici ?
     
    IniStream.Close

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour,

    utiliser par exemple la collection SortedList, voir l'aide sur MSDN …

    ___________________________________________________________________________________________________________
    Je suis Paris, Barcelone, London, Manchester, Egypte, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

Discussions similaires

  1. Trouver un section dans un fichier .ini
    Par Kemanke dans le forum MFC
    Réponses: 13
    Dernier message: 21/03/2007, 16h14
  2. Réponses: 5
    Dernier message: 22/08/2006, 10h35
  3. Comment écrire une section dans un fichier ini?
    Par Jayceblaster dans le forum Delphi
    Réponses: 5
    Dernier message: 26/06/2006, 14h08
  4. renvoyer toutes les section d'un fichier .ini
    Par user_steph dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 26/07/2005, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo