2010-04-17 7 views
2

J'ai besoin de l'utilisateur pour définir toutes les variables d'environnement nécessaires pour mon programme dans un fichier texte comme indiqué ci-dessous.putenv/setenv en utilisant des substitutions

MyDLLPath = C: \ MyDLLPath
myoption = Option1
PATH =% MyDLLPath%;% PATH%;

Dans mon programme, j'ai lu chaque ligne et appelé putenv avec la chaîne. Le problème est que les substitutions d'environnement (% MyDLLPath%) ne sont pas développées. Je devine le correctif suivant pour cela
- Vérifiez chaque ligne pour% caractères.
- Récupère le texte entre 2 caractères consécutifs.
- Appelez getenv en utilisant le texte
- Remplacez la valeur obtenue ci-dessus dans la ligne, puis appelez putenv.

Y a-t-il une meilleure façon de le faire?

Édition: À partir de la plateforme Windows. Devra faire unix mais pas sûr de savoir comment gérer la syntaxe unix pour les substitutions.

+0

Je suppose que vous travaillez sur un environnement Unix? –

+0

Non, c'est définitivement Windows, en utilisant des barres obliques inverses et des caractères en pourcentage. – Philipp

+0

Le problème avec ce post est que nous ne sommes pas sûrs de l'environnement dans lequel vous développez. Pourriez-vous s'il vous plaît nous donner plus d'informations? – senfo

Répondre

2

Vous pouvez utiliser ExpandEnvironmentStrings.

+0

+1, pourrait fonctionner. Critique dépend cependant de l'ordre dans le fichier. –

+0

Oui, l'ordre est important, tout comme dans l'algorithme de l'OP. Si vous vouliez les entrées dans un ordre arbitraire, vous auriez à construire un graphe de dépendance; ce serait probablement trop pour un simple fichier de configuration. – Philipp

Questions connexes