Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Création d'un fichier de ressources

5 réponses
Avatar
Gloops
Bonjour tout le monde,

Je cherche =E0 cr=E9er un fichier de ressources dans le cadre de la=20
migration d'un site web de HTML en ASP.

Les exemples que j'ai trouv=E9s fonctionnent tr=E8s bien pour =E9crire da=
ns un=20
fichier de ressources existant, mais pour le cr=E9er, =E7a n'a pas l'air =

glorieux : c'est simple, le fichier n'existe carr=E9ment pas =E0 la fin d=
u=20
traitement, et la propri=E9t=E9 BasePath du ResXResourceWriter reste null=
e.

J'ai essay=E9 en site web comme en application console.

J'ai compris que le fichier devait =EAtre cr=E9=E9 lors de l'emploi de la=
=20
m=E9thode Generate, mais je n'ai pas observ=E9 cela. Close n'arrange rien=
=20
non plus.

Ai-je manqu=E9 une =E9tape ?

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

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

Parmi mes tests j'ai essay=E9 d'=E9crire le fichier de ressources dans le=
=20
r=E9pertoire App_LocalResources de la page o=F9 je travaille.

5 réponses

Avatar
Gilles Kohl [MVP]
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)
Avatar
Gloops
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 ?
Avatar
Gilles Kohl [MVP]
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)
Avatar
Gloops
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)


Avatar
Gilles Kohl [MVP]
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)