Récupérer valeur Boolean dans un fichier txt

Fermé
Tempus01 Messages postés 81 Date d'inscription mercredi 6 janvier 2021 Statut Membre Dernière intervention 27 septembre 2022 - 9 mai 2021 à 18:13
Tempus01 Messages postés 81 Date d'inscription mercredi 6 janvier 2021 Statut Membre Dernière intervention 27 septembre 2022 - 9 mai 2021 à 21:21
Bonjour le Forum,

Je souhaiterais récupérer les valeurs Boolean ci dessous, ces valeurs permettent à l'utilisateur de sauvegarder ses choix.

Paramètres_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
fichier = My.Application.Info.DirectoryPath & "\SETUPTL.txt"
Dim monStreamReader As StreamReader = New System.IO.StreamReader(fichier)
CheckBox1.Checked = CBool(monStreamReader.ReadLine)
CheckBox2.Checked = CBool(monStreamReader.ReadLine)
RadioButton1.Checked = CBool(monStreamReader.ReadLine)
RadioButton2.Checked = CBool(monStreamReader.ReadLine)
RadioButton4.Checked = CBool(monStreamReader.ReadLine)
RadioButton5.Checked = CBool(monStreamReader.ReadLine)
RadioButton6.Checked = CBool(monStreamReader.ReadLine)
monStreamReader.Close()
End Sub
Private Sub Button17_Click(sender As Object, e As EventArgs) Handles Button17.Click
Dim son = New Media.SoundPlayer(My.Resources.Bip3)
son.Play()
' Création_fichier()
fichier = My.Application.Info.DirectoryPath & "\SETUPTL.txt" 'chemin du fichier texte
Dim monStreamWriter As StreamWriter = New StreamWriter(fichier)
monStreamWriter.WriteLine(CheckBox1.Checked.ToString)
monStreamWriter.WriteLine(CheckBox2.Checked.ToString)
monStreamWriter.WriteLine(RadioButton1.Checked.ToString)
monStreamWriter.WriteLine(RadioButton2.Checked.ToString)
monStreamWriter.WriteLine(RadioButton4.Checked.ToString)
monStreamWriter.WriteLine(RadioButton5.Checked.ToString)
monStreamWriter.WriteLine(RadioButton6.Checked.ToString)
monStreamWriter.Close()
Menu1.Show()
Me.Hide()
End Sub


Cela permettra de choisir entre différentes images de fond et d'activer ou non le son ou encore de choisir entre différentes music dans une autre form.

Voici un petit exemple.

 if "ma première ligne de mon fichier txt est false" then
Dim son = New Media.SoundPlayer(My.Resources.Bip3)
son.play
 
else
Dim son = New Media.SoundPlayer(My.Resources.Bip2)
 son.Play
 
End if


Après plusieurs recherche sur le net et différentes possibilités de testes, je suis un peu "beaucoup" perdu.
Pouvez vous m'aider afin que je puisse terminer ce bout de code.

Merci à vous.
Configuration: Windows / Chrome 90.0.4430.93

5 réponses

yg_be Messages postés 21303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mars 2023 1 326
9 mai 2021 à 19:34
bonjour,
que contient ton fichier SETUPTL.txt?
0
Tempus01 Messages postés 81 Date d'inscription mercredi 6 janvier 2021 Statut Membre Dernière intervention 27 septembre 2022
9 mai 2021 à 20:08
Voici son contenu.
False
False
False
True
True
False
False
0
yg_be Messages postés 21303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mars 2023 1 326
9 mai 2021 à 20:09
Il faut donc ensuite le relire.
0
yg_be Messages postés 21303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mars 2023 1 326 > yg_be Messages postés 21303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mars 2023
9 mai 2021 à 20:21
je ne pense pas que tu puisses ainsi utiliser cbool pour récupérer la valeur après un tostring.
moi j'essaierais cint:
monStreamWriter.WriteLine(cint(CheckBox1.Checked))
0
Tempus01 Messages postés 81 Date d'inscription mercredi 6 janvier 2021 Statut Membre Dernière intervention 27 septembre 2022 > yg_be Messages postés 21303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mars 2023
9 mai 2021 à 20:28
Merci, je viens de tester.
Apres conversion voici le contenu du fichier SETUPTL, mais j'ai un message d'erreur à la relecture "CBOOL"
-1
-1
-1
0
0
0
0
yg_be Messages postés 21303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mars 2023 1 326 > Tempus01 Messages postés 81 Date d'inscription mercredi 6 janvier 2021 Statut Membre Dernière intervention 27 septembre 2022
9 mai 2021 à 20:33
quel message d'erreur?
0
yg_be Messages postés 21303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mars 2023 1 326 > yg_be Messages postés 21303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mars 2023
9 mai 2021 à 20:36
si il n'y avait pas de message d'erreur avant, quel était le soucis?
0
Tempus01 Messages postés 81 Date d'inscription mercredi 6 janvier 2021 Statut Membre Dernière intervention 27 septembre 2022
Modifié le 9 mai 2021 à 21:01
L'erreur se produit lorsque je relance le form Paramètres.

si je remplace votre code
monStreamWriter.WriteLine(cint(CheckBox1.Checked))
par l'ancien:
monStreamWriter.WriteLine(CheckBox1.Checked.ToString)
il n'y a plus l'erreur.
0
Whismeril Messages postés 18279 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 mars 2023 888
9 mai 2021 à 21:20
Bonsoir

Cbool, ce n'est pas du VB.Net, c'est un "reste" de VB6.

Utilise Boolean.Parse si tu es sûr et certains qu'en entrée il y a toujours "True" ou "False" et si tu n'es pas sûr alors il faut utilise Boolean.TryParse.


Pour ne plus mélanger VB6 et VB.Net, tu peux (devrais) aller dans les références et décocher "Microsoft.VisualBasic".

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tempus01 Messages postés 81 Date d'inscription mercredi 6 janvier 2021 Statut Membre Dernière intervention 27 septembre 2022
9 mai 2021 à 21:21
Bonsoir,
Merci pour l'info, c'est intéressent.
0