Aide sur fichier INI

Signaler
Messages postés
259
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
5 février 2015
-
Messages postés
259
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
5 février 2015
-
Bonsoir,

Je souhaiterai faire une appli multilangue ( francais,anglais ) en vb.net
j'ai regarder sur le forum et j'ai vu que c'est realisable avec un fichier .ini

Est-ce que quelqu'un pourrai m'aider à creer ce fichier pour pouvoir changer la langue de mes Label ?

je ne sais pas trop comment m'y prendre, je debute

Merci pour votre aide
A+

3 réponses

Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Bonjour,

Je suppose que tu veux écrire ton fichier en binaire (après, que tu mettes l'extension .ini, en .dat, ou en ce que tu veux, ça ne change pas grand chose, du moment que ton programme le code de la même façon).

pour ouvrir ton fichier, fais

FileName= LadresseDeTonFichier
fic=FreeFile  'ça prend un fichier libre
Open FileName for Binary as #fic   'ouvre ton fichier

'pour prendre qqch dans le fichier, fais:
Get #fic,Position,VariableDeReception
'pour écrire qqch, fais:
Put #fic,Position,VariableDorigine

ensuite, fais  close #fic    pour fermer ton fichier.

Remarques importantes:
tu ne peux naviguer dans ton fichier que si tu fais:
seek #fic,Position
(et après tu peux prendre le truc que tu veux, ou écrire ce que tu veux:
get (ou put) #fic,Position,Variable
)

Ensuite, très important: en binaire, tu sauves des types: integer, single, long, string*32  (il faut définir la longueur de la chaine, c'est très important, c'est ce qui définit la place que ça va prendre sur le fichier), ou n'importe quel type que tu crées.

deux exemples:
tu sauvegardes plusieurs chaines de 30 caractères à la suite:
tu fais:

dim sTemp as string*30   (la présence du 30, est très importante, comme je l'ai dit plus haut)
filename= CeQueTuVeux
fic=freefile
open filename for binary as #fic
for i=1 to 10) (si tu veux sauvegarder 10 mots)
stemp=mot(i)
put #fic,1+(i-1)*len(stemp),stemp    (tu remarques que la position à chaque fois, je la décale de la longueur de ce que j'ai rentré la fois précédente..)
next
close #fic

deuxième exemple: tu te crées un type, n'importe quoi...

public type NouveauType
NomEleve as string*30
PrenomEleve as string*30
Age as integer
Moyenne du trimestre as long
end type

pour le sauvegarder, (ou le lire), soit tu les fais un par un, comme précédement, en faisant attention à la longueur de chacun des éléments que tu mets ou tu lis (sinon, tu vas lire un bout de nombre, un bout de chaine, ça va te faire un peu n'importe quoi...)

soit, plus rapide:

tu as créé une variable Eleve (as NouveauType défini ci dessus), et tu as mis les valeurs dans cette variable.
t'as plus qu'à faire:

filename=TonFicher
fic=freefile
open filename for binary as #fic
put #fic,Eleve
close #fic

si tu veux lire ton fichier, c'est aussi facile, t'as qu'à remplacer put par get, et tu peux lire chacun des Eleve.NomEleve, Eleve.PrenomEleve, Eleve.Age, etc...

En espérant avoir pu t'aider.

Christophe
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Ps: pour ton problème, faire un truc multilangue, tu n'as qu'a faire un type
Langue1, Langue2, Langue3,.... et donner un numéro à tes labels par exemple
comme ça t'as qu'à faire
dim MotsDuLabel as (le type que tu as défini)
open.....
seek #fic,1+numerolabel*len(MotsDuLabel )
put (ou get)#fic,1+numerolabel*len(MotsDuLabel )
close #fic
label(numerodulabel).caption=MotsDuLabel (numerodelalangue)

(et là, après avoir écris x lignes, je viens de me rendre compte que tu écrivais en VB2005, et pas en VB6.... bon l'idée pour l'écriture des fichiers et la même, mais la syntaxe..... enfin ça peut servir à d'autres... x_x  vais me frapper moi je sens...
dodo...)
Messages postés
259
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
5 février 2015

Merci pour ta reponse


Mais je recherche un exemple tres simple en vb2005


 


A+