Création d'un fichier de ressources

Le
Gloops
Bonjour tout le monde,

Je cherche à créer un fichier de ressources dans le cadre de la
migration d'un site web de HTML en ASP.

Les exemples que j'ai trouvés fonctionnent très bien pour écrire da=
ns un
fichier de ressources existant, mais pour le créer, ça n'a pas l'air =

glorieux : c'est simple, le fichier n'existe carrément pas à la fin d=
u
traitement, et la propriété BasePath du ResXResourceWriter reste null=
e.

J'ai essayé en site web comme en application console.

J'ai compris que le fichier devait être créé lors de l'emploi de la=

méthode Generate, mais je n'ai pas observé cela. Close n'arrange rien=

non plus.

Ai-je manqué une étape ?

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2590907&SiteId==
1

http://msdn2.microsoft.com/en-us/library/ekyft91f.aspx

Parmi mes tests j'ai essayé d'écrire le fichier de ressources dans le=

répertoire App_LocalResources de la page où je travaille.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles Kohl [MVP]
Le #12152031
On Mon, 21 Apr 2008 00:46:40 +0200, Gloops wrote:

Bonjour tout le monde,

Je cherche à créer un fichier de ressources dans le cadre de la
migration d'un site web de HTML en ASP.

Les exemples que j'ai trouvés fonctionnent très bien pour écrire dans un
fichier de ressources existant, mais pour le créer, ça n'a pas l'air
glorieux : c'est simple, le fichier n'existe carrément pas à la fin du
traitement, et la propriété BasePath du ResXResourceWriter reste nulle.

J'ai essayé en site web comme en application console.



Pourriez-vous poster le code de l'application console de test? (Plus
facile a mettre en oeuvre)

Amicalement,
Gilles.

Regards,
Gilles [MVP].

(Please reply to the group, not via email.
Find my MVP profile with past articles / downloads here:
http://www.gilleskohl.de/mvpprofile.htm)
Gloops
Le #12152001
Gilles Kohl [MVP] a écrit, le 21/04/2008 07:38 :
Pourriez-vous poster le code de l'application console de test? (Plus
facile a mettre en oeuvre)



Oui, si je m'en suis abstenu la première fois, c'est que ceci est
extrait de la page à la première des deux adresses que j'ai fournies, à
l'indentation près (dans le cadre "Code Block") :

string resXFile = "test.resx";
string resKey = "myKey";
string resValueFile = "myValue";

using (ResXResourceWriter writer =
new ResXResourceWriter(resXFile))
{
Console.WriteLine(
"Associating {0} with {1}'s contents", resKey, resValueFile);
Console.Write("To {0}...", resXFile);

using (ResXResourceReader reader =
new ResXResourceReader(resXFile))
{
foreach (DictionaryEntry node in reader)
writer.AddResource((string)node.Key, node.Value);
}

writer.AddResource(resKey, File.ReadAllBytes(resValueFile));
}


Ah c'est vrai que j'ai dit ça un peu vite.

A la fin il manque peut-être : writer.Generate();

J'ai mis writer.Close(), aussi, ensuite, je ne suis plus très sûr si ça
fait double emploi avec l'emploi de using -auquel cas, si on considère
que Close inclut un appel implicite à Generate, le code indiqué par
l'aide devrait fonctionner (ce que d'ailleurs je supposais au départ).

(pas facile d'éviter une allitération, sur double emploi avec emploi, ou
utilisation de using ;) )

Je mets tout ça à l'intérieur des accolades de using.

Un autre ajout que j'ai fait, aussi, est de compléter resXFile avec le
chemin d'accès.

Je finis par en arriver à me demander si ce n'est pas parce que j'ai
ajouté trop de choses que ça ne marche pas ...
Pourtant, ça ne donnait rien au départ, après un copier/coller.

Aurais-je lu bêtement ?
Gilles Kohl [MVP]
Le #12151991
On Mon, 21 Apr 2008 20:12:45 +0200, Gloops wrote:

Gilles Kohl [MVP] a écrit, le 21/04/2008 07:38 :
Pourriez-vous poster le code de l'application console de test? (Plus
facile a mettre en oeuvre)



Oui, si je m'en suis abstenu la première fois, c'est que ceci est
extrait de la page à la première des deux adresses que j'ai fournies, à
l'indentation près (dans le cadre "Code Block") :

string resXFile = "test.resx";
string resKey = "myKey";
string resValueFile = "myValue";

using (ResXResourceWriter writer > new ResXResourceWriter(resXFile))
{
Console.WriteLine(
"Associating {0} with {1}'s contents", resKey, resValueFile);
Console.Write("To {0}...", resXFile);

using (ResXResourceReader reader > new ResXResourceReader(resXFile))
{
foreach (DictionaryEntry node in reader)
writer.AddResource((string)node.Key, node.Value);
}

writer.AddResource(resKey, File.ReadAllBytes(resValueFile));
}





Ce code me semble copier le contenu d'un fichier "test.resx" (qui
n'existe pas dans votre cas), puis y ajouter le contenu binaire d'un
fichier "myValue" (qui n'existe pas non plus dans votre cas).
Qu'est-ce exactement que vous voulez faire?

S'il s'agit simplement de créer un fichier resx avec des
correspondances nom/valeur, essayez:

using(ResXResourceWriter writer = new
ResXResourceWriter(@"monfichier.resx"))
{
writer.AddResource("Prenom", "Obelix");
writer.AddResource("Nom de famille", "Legaulois");
writer.AddResource("Occupation", "Tailleur de menhirs");
writer.AddResource("Aime", "Sangliers");
writer.AddResource("Craint", "Chute ciel sur tete");

writer.Generate();
}

Est-ce cela que vous essayiez d'obtenir?

Amicalement,
Gilles.

Regards,
Gilles [MVP].

(Please reply to the group, not via email.
Find my MVP profile with past articles / downloads here:
http://www.gilleskohl.de/mvpprofile.htm)
Gloops
Le #12151741
Bonjour,

Ma parole, mais ça marche !

En bas de l'aide de ResXResourceReader, il y a un lien pour envoyer des
commentaires. Je me demande si je ne vais pas l'utiliser pour suggérer
qu'on demande l'avis de Gilles Kohl pour le choix des exemples :)

Pour l'anecdote, c'est au moment où on se met à parler de sanglier qu e
le fichier apparaît dans le répertoire.
Obélix aurait sûrement une explication :)

En tout cas, merci, je crois que j'aurais eu tendance à tourner en rond
encore quelques heures

(en rond ... qui a dit gros ?)

________________________________________________
Gilles Kohl [MVP] a écrit, le 21/04/2008 21:14 :

Ce code me semble copier le contenu d'un fichier "test.resx" (qui
n'existe pas dans votre cas), puis y ajouter le contenu binaire d'un
fichier "myValue" (qui n'existe pas non plus dans votre cas).
Qu'est-ce exactement que vous voulez faire?

S'il s'agit simplement de créer un fichier resx avec des
correspondances nom/valeur, essayez:

using(ResXResourceWriter writer = new
ResXResourceWriter(@"monfichier.resx"))
{
writer.AddResource("Prenom", "Obelix");
writer.AddResource("Nom de famille", "Legaulois");
writer.AddResource("Occupation", "Tailleur de menhirs");
writer.AddResource("Aime", "Sangliers");
writer.AddResource("Craint", "Chute ciel sur tete");

writer.Generate();
}

Est-ce cela que vous essayiez d'obtenir?

Amicalement,
Gilles.

Regards,
Gilles [MVP].

(Please reply to the group, not via email.
Find my MVP profile with past articles / downloads here:
http://www.gilleskohl.de/mvpprofile.htm)


Gilles Kohl [MVP]
Le #12151721
On Sat, 26 Apr 2008 12:55:33 +0200, Gloops wrote:

Bonjour,

Ma parole, mais ça marche !

En bas de l'aide de ResXResourceReader, il y a un lien pour envoyer des
commentaires. Je me demande si je ne vais pas l'utiliser pour suggérer
qu'on demande l'avis de Gilles Kohl pour le choix des exemples :)



:-)

Pour l'anecdote, c'est au moment où on se met à parler de sanglier que
le fichier apparaît dans le répertoire.
Obélix aurait sûrement une explication :)

En tout cas, merci, je crois que j'aurais eu tendance à tourner en rond
encore quelques heures

(en rond ... qui a dit gros ?)



Pas moi, j'ai dit bas de poitrine, moi.

Amicalement,
Gilles.

Regards,
Gilles [MVP].

(Please reply to the group, not via email.
Find my MVP profile with past articles / downloads here:
http://www.gilleskohl.de/mvpprofile.htm)
Publicité
Poster une réponse
Anonyme