Générer un .reg valide

Résolu
SNoof85 Messages postés 6 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 9 janvier 2008 - 8 janv. 2008 à 23:23
SNoof85 Messages postés 6 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 9 janvier 2008 - 9 janv. 2008 à 00:01
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

Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
8 janv. 2008 à 23:45
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
3
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
8 janv. 2008 à 23:30
peut-être un retour chariot en trop à la fin du fichier (ou en moins ?) ou une connerie du genre ?
0
SNoof85 Messages postés 6 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 9 janvier 2008
8 janv. 2008 à 23:33
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...
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
8 janv. 2008 à 23:35
Bonsoir,

Tu as surement modifié en B le E qui se trouve dans l'entête (1ère ligne ... !!)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
8 janv. 2008 à 23:37
En entête, tu as quelque chose du genre :

Windows Registry Editor Version 5.00

Et regarde : il y a un E ...
0
SNoof85 Messages postés 6 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 9 janvier 2008
8 janv. 2008 à 23:44
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.. :(
0
SNoof85 Messages postés 6 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 9 janvier 2008
8 janv. 2008 à 23:53
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à...
0
SNoof85 Messages postés 6 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 9 janvier 2008
8 janv. 2008 à 23:55
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 ?
0
SNoof85 Messages postés 6 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 9 janvier 2008
9 janv. 2008 à 00:01
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 !
0
Rejoignez-nous