Fichier INI et Boolean [Résolu]

tuss 9 Messages postés mardi 10 octobre 2006Date d'inscription 20 décembre 2013 Dernière intervention - 29 mars 2013 à 23:23 - Dernière réponse : tuss 9 Messages postés mardi 10 octobre 2006Date d'inscription 20 décembre 2013 Dernière intervention
- 2 avril 2013 à 19:27
Bonjour à Tous...

J'ai un petit problème pour lire et écrire des valeurs booleans dans un fichier '.INI' avec DELPHI7.

Je stock dans un fichier 'monfichier.ini' des Strings, Integers, Booleans.

Avec les Strings et les Integers tout marche bien.

C'est avec les Booleans que ça marche pô.

----------
Exemple:
Stocker dans l'.INI l'état d'une Checkbox qui se nomme : ckbTest

j'écrit dans l'.INI :

WriteBool('CheckBox', 'Test', ckbTest.checked);

A l'écriture tout marche bien. Cette routine ce situe dans l'évènement (OnCreate de la fenetre ou se trouve la CheckBox)

je jette un coup d'oeil dans le fichier '.INI' :

[CheckBox]
Test=1

-----------
Lecture du fichier '.INI'

ckbTest.checked:=ReadBool('CheckBox', 'Test', false); // valeur false par défaut

Cette routine ce situe dans l'évènement (OnDestroy de la fenêtre où se trouve la CheckBox)

A l'exécution, j'obtient une erreur 'Access violation at adresse...) et le programme démarre.
A chaque commande de mon programme (clavier, souris), j'obtient toujours cette erreur et le programme continue de fonctionner. Je suis obliger de passer par le gestionnaire de tache pour le fermer.

Si je supprime cette ligne de code, mon programme marche de nouveau sans erreur.

Après lecture et re-lecture de l'utilisation de l'instructione (ReadBool) dans l'aide de Delphi, il me semble que je l'utilise correctement.

Pourriez vous m'aider à résoudre ce problème ?

Merci...
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 1 avril 2013 à 17:08
3
Merci
Bonjour,
oui, il faudrait plus de code.
car l'écriture de l'ini sur le OnDestroy n'est pas habituel..
le mieux est de le mettre sur la fermeture de la forme
car il y a souvent plusieurs formes en présence et ceci permet une modification des valeurs
pendant le fonctionnement normal de l'application.

cantador

Merci cs_cantador 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de cs_cantador
tuss 9 Messages postés mardi 10 octobre 2006Date d'inscription 20 décembre 2013 Dernière intervention - 30 mars 2013 à 20:24
0
Merci
Re-bonjour à Tous...

Décidemment en ce moment ça va pa fort.

En plus de mettre trompé dans mon message, j'ai fait des fautes niveau 6ème.

L'écriture du fichier .INI se fait dans (OnDestroy)
La lecture du fichier .INI se fait dans (OnCreate)

Je viens de trouver la solution.

Il faut passer par un ReadInteger pour la lecture d'un boolean !
1 = true
0 = false

Je ne vois donc pas l'intérêt de l'utilité de l'instruction ReadBool.

Pouvez-vous m'en dire plus.

Merci.
Commenter la réponse de tuss
korgis 424 Messages postés samedi 17 mai 2003Date d'inscription 4 août 2018 Dernière intervention - 1 avril 2013 à 09:55
0
Merci
Salut,

Il faudrait plus de code. Apparemment, le problème se situe ailleurs...
A tout hasard, au moment de l'écriture, le path du fichier .ini est-il valide (vérifie quand même !) ?
Commenter la réponse de korgis
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 1 avril 2013 à 17:11
0
Merci
on peut même aussi prévoir un bouton réalisant l'opération
évitant ainsi la fermeture de la forme.

on peut donc résumer les évènements en jeu :

- onCreate
- onClose
- OnClick

cantador
Commenter la réponse de cs_cantador
tuss 9 Messages postés mardi 10 octobre 2006Date d'inscription 20 décembre 2013 Dernière intervention - 2 avril 2013 à 19:27
0
Merci
Hello...

Bon, j'ai creusé l'affaire et j'ai trouvé la (ma) solution.

Après réflexion je me suis dit si l'instruction ReadBool() existe c'est
quelle doit fonctionner et servir à quelque chose.

Mon application n'a qu'une Form et quand je la quitte, Le fichier .INI sert à sauvegarder différents paramètres :
(Position de la Fenêtre, Checkbox, quelques Variables, etc...)

J'ai donc mis ma routine (.INI) dans l'évènement OnClose de la Form et cela fonctionne très bien.

Merci à tous...
Commenter la réponse de tuss

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.