[Résolu] Combo avec récupération d'éléments dans un fichier .ini
Stagiaire WDF
Inscrit:
20/08/2005 01:31
De Lens
Post(s): 23
Bonjour :).
J'aimerais savoir si vous pouvez me donner un coup de main sur un code me restant à développer. Malheureusement, faute de temps (partiels et autres à la fac), je n'ai pas le temps de chercher comment faire cela.
Je vais essayer de vous résumer la chose le plus simplement possible.
J'ai développé une application qui utilise des fichiers .ini afin que celle-ci puisse être multilangue.
Pour le français, le fichier s'appelle french.ini
Pour l'anglais, english.ini
...

Au début du french.ini, j'ai ceci :

[Language]
FileLanguage=Français
FileName=french


Pour l'anglais :

[Language]
FileLanguage=English
FileName=english


Donc en gros, j'aimerais si possible avoir un exemple de code qui permettrait de lister directement les fichiers .ini présents dans le dossier /language/ via une combo. Laquelle lirait la valeur FileLanguage
Puis lors de l'enregistrement, écrirait dans le fichier .ini correspondant à la configuration la valeur dans FileName

J'espère avoir été assez clair et vous remercie par avance si vous pouviez me donner ce coup de main, car c'est une application GNU/GPL que je fais et qui sera bénéfique pour de nombreuses personnes .

Voici le lien des captures de l'application .

http://www.oxygen-powered.net/viewtopic.php?t=496

Cordialement

ABDev

Contribution le : 10/05/2007 23:12

Edité par drcharly93 sur 14/5/2007 16:37:16
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Un début de code saisie à la volée et non testé
cmbNom est une chaîne = "comboIni"
ResFichier est une chaîne
sLangue est une chaîne
sFichier est une chaîne

//Récupration des fichier ini
ResFichier = fRep(ComplèteRep( fRepExe() ) + "language\*.ini", frFichier)
TANTQUE ResFichier <> ""
	sLangue = INILit( "Language", "FileLanguage", "", ResFichier )
	sFichier = INILit( "Language", "FileName", "" , ResFichier )
	SI sLangue <> "" ALORS	ListeAjoute(cmbNom, sLangue + Répète( " ", 50) + TAB + sFichier)
	ResFichier = fRep("", frFichier)
FIN

//Pour ecrire dans un fichier ini l'entrée Message1 avec la valeur 'Ceci est le message 1' dans le fichier french.ini
//On récupère le nom du fichier sélectionné dans la combo
sFichier = ExtraitChaîne( {cmbNom,indChamp}..ValeurAffichée, 2)
INIEcrit( "Language", "Message1", "Ceci est le message 1", ComplèteRep( fRepExe() ) + "language\" + sFichier + ".ini")


Contribution le : 11/05/2007 00:53
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
Stagiaire WDF
Inscrit:
20/08/2005 01:31
De Lens
Post(s): 23
Merci drcharly, je teste cela tout à l'heure sitôt rentré .

Contribution le : 11/05/2007 11:59
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
Stagiaire WDF
Inscrit:
20/08/2005 01:31
De Lens
Post(s): 23
Rebonjour .
J'ai testé le code et malheureusement la combo ne se remplit pas des informations .

J'ai mis ceci dans les déclarations globales de la fenêtre :

//
//	Code by drcharly93, WDForge
//	http://old.wdforge.org/
//
cmbName est une chaîne = "ComboIni"
ResFile est une chaîne
sLang est une chaîne
sFile est une chaîne


Ceci dans l'initialisation de la fenêtre :

//
//	Code by drcharly93, WDForge
//	http://old.wdforge.org/
//
ResFile = fRep(fRepEnCours() + "\languages\*.ini", frFichier)
TANTQUE ResFile <> ""
	sLang = INILit("Language", "FileLanguage", "", ResFile)
	sFile = INILit("Language", "FileName", "", ResFile)
	SI sLang <> "" ALORS ListeAjoute(cmbName, sLang + Répète(" ", 50) + TAB + sFile)
	ResFile = fRep("", frFichier)
FIN


Et enfin ceci dans le bouton qui sert à l'enregistrement :

//
//	Code by drcharly93, WDForge
//	http://old.wdforge.org/
//
sFile = ExtraitChaîne({cmbName, indChamp}..ValeurAffichée, 2)
INIEcrit("Config", "UsedLanguage", sFile, fRepEnCours() + "\Config.ini")


Bien sûr, j'ai initialisé la Combo via :

ComboIni = ResFile


Auriez-vous une autre idée s'il vous plaît ? .
Merci par avance, c'est déjà très gentil ce que vous faîtes pour nous .

ABDev

Contribution le : 11/05/2007 17:22
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
Animateur WDF
Inscrit:
19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
Bonjour,

Dans la ligne :

ResFile = fRep(fRepEnCours() + "\languages\*.ini", frFichier)

Remplacez fRepEnCours() par fRepEXE()

Bon dév.,

Totof

Contribution le : 11/05/2007 17:49
_________________
[ Totof(Christophe LOGEL) réalise des développements spécifiques WinDev (Mon annonce wdforge), http://www.sigmasys.fr]
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
Stagiaire WDF
Inscrit:
20/08/2005 01:31
De Lens
Post(s): 23
Bonjour Totof
Le problème reste le même hélas :-/.

Je me posais une question concernant la ligne suivante :

cmbName est une chaîne = "ComboIni"


La valeur ComboIni correspond-il au nom de la Combo ? Cela ne change rien en plus :-/.
Merci à vous .

Contribution le : 11/05/2007 17:56
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
ChefDeProjet WDF
Inscrit:
02/05/2006 21:28
Post(s): 160
cmbNom est une chaîne = "comboIni"
est bien le nom de lacombo dans le code de drcharly93

mais là il faut écrire alors {cmbname;indchamp} car c'est une indirection ou utiliser le nom de ta combo

ListeAjoute(cmbName, sLang + Répète(" ", 50) + TAB + sFile)

Contribution le : 11/05/2007 20:33
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
Stagiaire WDF
Inscrit:
20/08/2005 01:31
De Lens
Post(s): 23
Oki je teste cela, merci wd3000 ^^.

Edit : euh, je n'ai pas compris la manipulation à effectuer .

Contribution le : 11/05/2007 20:43
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
ChefDeProjet WDF
Inscrit:
02/05/2006 21:28
Post(s): 160
soit tu mets le nom de ta combo dans
listeajoute("ici")

soit tu corrige en
listeajoute({cmbname,indchamp}

si ta combo s'appelle bien comboini

la première méthode est simple, la deuxième est plus universelle

Contribution le : 11/05/2007 21:21
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
Stagiaire WDF
Inscrit:
20/08/2005 01:31
De Lens
Post(s): 23
Bonsoir wd3000,
J'ai donc changé la ligne suivante :

SI sLang <> "" ALORS ListeAjoute(cmbName, sLang + Répète(" ", 50) + TAB + sFile)


par :

SI sLang <> "" ALORS ListeAjoute({cmbName, indChamp}, sLang + Répète(" ", 50) + TAB + sFile)


Mais cela ne change rien au souci. La combo reste vide .

Contribution le : 11/05/2007 21:34
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
ChefDeProjet WDF
Inscrit:
02/05/2006 21:28
Post(s): 160
Quel est le nom de ta combo ?

Contribution le : 12/05/2007 12:11
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
Stagiaire WDF
Inscrit:
20/08/2005 01:31
De Lens
Post(s): 23
Elle se nomme "Languages" ;).
Quand DrCharly avait mis "ComboIni", je l'avais aussi renommé en "ComboIni" mais cela n'a rien changé :-/.

Contribution le : 12/05/2007 12:38
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
ChefDeProjet WDF
Inscrit:
02/05/2006 21:28
Post(s): 160
Tu as écris:
Bien sûr, j'ai initialisé la Combo via :
ComboIni = ResFile

Où est ce code au demeurant inuile
Listeajoute() suffit

Où sont tes fichiers .ini ?
attention frepexe() renvoie le chemin de ton projet\exe en mode test

Sinon je ne vois rien d'autre le code est parfaitement juste pour remplir ta combo

Contribution le : 12/05/2007 21:21
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
Stagiaire WDF
Inscrit:
20/08/2005 01:31
De Lens
Post(s): 23
Euh bon, je suis paumé là ^^.
Je remets quoi à la place de fRepExe() ? fRepEnCours() comme initialement ?
Sinon, mes fichiers .ini sont dans le dossier \languages\

Je vais retenter :-/.

Contribution le : 12/05/2007 22:53
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
ChefDeProjet WDF
Inscrit:
02/05/2006 21:28
Post(s): 160
tes fichiers ne sont pas juste dans \languages\

ex:
fichier dans c:\lesoft\languages\

alors ton exe devra être dans c:\leprojet pour que frepexe() fonctionne

mais en mode test ( Go) WD ne va pas chercher dans c:\leprojet\languages mais dans rep du projet ( là où tu développe: c:\mes projets\lesoft\exe)

Je suis sûr que ton problème vient de là.

Mets un chemin en dur pour essayer au lieu de frepexe(), par ex "c:\lesotf\langages\"

Contribution le : 13/05/2007 10:18
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
Stagiaire WDF
Inscrit:
20/08/2005 01:31
De Lens
Post(s): 23
Bonjour,
Avec mon ami, nous avons réussi à résoudre tout cela via l'utilisation de la fonction gLien .
Merci pour votre aide :).

Contribution le : 13/05/2007 18:16
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
ChefDeProjet WDF
Inscrit:
02/05/2006 21:28
Post(s): 160
Peux-tu mettre le code en ligne car glien n'a rien à voir avec le remplissage de ta combo qui je crois était ton problème (citation: La combo reste vide )

Contribution le : 13/05/2007 20:00
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
Stagiaire WDF
Inscrit:
20/08/2005 01:31
De Lens
Post(s): 23
Bin suffit de venir sur mon forum pour prendre le code source, vu que c'est une application GNU/GPL .

http://www.oxygen-powered.net/viewtopic.php?t=505

Bonne soirée.
++

Contribution le : 13/05/2007 20:09
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour ABDev,

Nous sommes ravi que cela ai fait avancer le smilblic
Cela va dans le fondement même de notre site, l'entraide entre les développeurs de communauté et de promouvoir les projets Open sources, ce qui apparement est votre cas.

Citation :

Oxygen Powered tient à remercier les développeurs du site WDForge pour leur aide.

Félicitations pour votre initiative et merci pour le retour.

Contribution le : 14/05/2007 11:07
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Combo avec récupération d'éléments dans un fichier .ini
Stagiaire WDF
Inscrit:
20/08/2005 01:31
De Lens
Post(s): 23
Etant maintenant plus actif dans la communauté phpBB que WinDev, ma philosophie de l'Open-Source est ainsi, et donc je me devais de faire disposer à un maximum de personnes le code source ^^.

Pour le retour, c'est tout à fait normal .
D'ailleurs, j'ai même remercié WDForge sur le site officiel de ToC.

http://community.to-crossfire.net/forums/showthread.php?t=3983

Merci encore pour votre aide .

Contribution le : 14/05/2007 13:49

Edité par drcharly93 sur 14/5/2007 15:14:24
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2