Générer un .reg valide [Résolu]

Signaler
Messages postés
6
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
9 janvier 2008
-
Messages postés
6
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
9 janvier 2008
-
Bonsoir,

Je débute en VB avec visual basic 2005 Express et je souhaiterai un peu d'aide...

Mon soucis est le suivant :

J'exporte une clé de ma BDR dans un fichier "export.reg"
Je lis ce fichier grâce à cette ligne : FileExp =
My.Computer.FileSystem.ReadAllText(
"D:\MasterXP\CD\1.reg")
Ensuite, je modifie la chaine lue avec : fileout = Replace(FileExp,
"E:",
"B:")
Puis je créé un fichier out.reg avec : My
.Computer.FileSystem.WriteAllText(
"D:\MasterXP\CD\out.reg", fileout,
False)

Jusque là tout vas bien, mais là ou le soucis se pose c'est lors de la fusion de mon fichier out.reg avec ma BDR... j'obtiens un message : "Impossible d'importer out.reg : le fichier spécifié n'est pas un script du registre....."

Il m'était au départ venu à l'esprit que quelquechose était mauvais dans ma méthode de modif et que j'aurais pu toucher à une occurence de E: qu'il ne fallait pas toucher, mais si je modifie mon out.reg, que je copie tout ce qui est dedans pour le coller dans un fichier texte (créé par click droit->nouveau->fichier texte) et que je fusionne ce nouveau fichier, tout va bien...!

Quelqu'un à t'il une idée pour résoudre mon soucis ?

Merci beaucoup.
Sébastien.

9 réponses

Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
jmfmarques < non, il semble substituer "E:" par "B:"
Ce doit être readalltext() et/ou writealltext() qui foute la grouille.
As-tu essayé de faire une comparaison de fichier entre ton out.reg et ton fichier copier/coller depuis celui-ci.
Il doit forcément y avoir un truc ... en regardant dans un éditeur hexa peut-être
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
peut-être un retour chariot en trop à la fin du fichier (ou en moins ?) ou une connerie du genre ?
Messages postés
6
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
9 janvier 2008

J'avais pensé à un truc de ce genre, mais je fais ctrl + a dans mon out.reg, je copie le tout, le recolle dans un fichier texte vierge et je peux le fusionner...
lors de l'écriture du out.reg, mon code n'ajoute rien en en-tête de fichier ? un truc caché ? que j'ignore...
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Bonsoir,

Tu as surement modifié en B le E qui se trouve dans l'entête (1ère ligne ... !!)
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
En entête, tu as quelque chose du genre :

Windows Registry Editor Version 5.00

Et regarde : il y a un E ...
Messages postés
6
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
9 janvier 2008

Oui, la 1ere ligne est bonne, vu que si je recopie le contenu de mon out.reg dans un document texte vierge ça fusionne bien.. :(
Messages postés
6
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
9 janvier 2008

En regardant de plus près (sans aller jusqu'à l'éditeur hexa) l'un est en ANSI, l'autre en UTF8...
Ca viendrai de là...
Messages postés
6
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
9 janvier 2008

Pardon le out.reg est en UTF8, l'autre en UCS-2 Little Endian...
Avec notepad ++ j'encode mon out.reg en UCS-2 Little Endian et ça fusionne :)
Mais comment faire en direct ?
Messages postés
6
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
9 janvier 2008

My



.Computer.FileSystem.WriteAllText(

"D:\MasterXP\CD\out.reg"
, fileout,

False
, system.Text.Encoding.Unicode) c'est la ligne miracle qui change tout !
Merci à toi Kristof_Koder de m'avoir mis sur la voix !