Page 1 sur 1

[R]Extraire une info d'un txt

Posté : ven. 01 déc. 2017 17:14
par jerem448
Bonjour à tous,
J'ai besoin de votre aide pour finaliser un petit programme.

C'est un programme tout simple qui me donne les infos nécessaires pour la MAJ BIOS.
Donc avec un peu de recherche j'ai réussi a récuperer les infos de la machine, mais je bloque sur la dernière étape qui est de récupérer la valeur de la dernière version dans un fichier texte.

Mon programme me renvoi
Image
J'aimerai que la ligne NB_BIOS me donne la valeur correspondant au modèle.
le fichier NB_BIOS.txt ressemble à :
#model = newest BIOS version
A8DC = 214
A8E = 302
A8F = 302
A8FM = 212
A8H = 204
A8HE = 210
A8J = 212J

Exemple : Il me faut donc trouver le moyen de récupérer le 212 si je suis sur un modèle A8J

J'éspère que vous comprendrez ce que je veux faire ^^

Re: [..]Extraire une info d'un txt

Posté : ven. 01 déc. 2017 19:22
par Tlem
Vous n'expliquez pas comment vous récupérez le numéro de modèle ?

Re: [..]Extraire une info d'un txt

Posté : ven. 01 déc. 2017 21:07
par jerem448
Ah pardon, j'utilise regread et je récupère le SystemProductName
Chemin complet :RegRead("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS", "SystemProductName")
Merci de ta réponse

Re: [..]Extraire une info d'un txt

Posté : ven. 01 déc. 2017 21:59
par Tlem
Bonsoir, avec les éléments communiqués, voici un code correspondant :

Code : Tout sélectionner

Global $NB_BIOS= ""

$SPN = RegRead("HKLM\HARDWARE\DESCRIPTION\System\BIOS", "SystemProductName")
Select
	Case $SPN = "A8DC"
		$NB_BIOS = "214"

	Case $SPN = "A8E" Or $SPN = "A8F"
		$NB_BIOS = "302"

	Case $SPN = "A8FM"
		$NB_BIOS = "212"

	Case $SPN = "A8H"
		$NB_BIOS = "214"

	Case $SPN = "A8HE"
		$NB_BIOS = "210"

	Case $SPN = "A8J"
		$NB_BIOS = "212J"

EndSelect

If $NB_BIOS <> "" Then
	MsgBox(64, "BIOS Verion", $NB_BIOS)
Else
	MsgBox(16, "BIOS Version", "Impossible de déterminer la version du BIOS")
EndIf

Re: [..]Extraire une info d'un txt

Posté : ven. 01 déc. 2017 22:16
par jerem448
On ne s'est pas compris je pense.... Désolé

Le truc c'est que dans le fichier NB_BIOS.txt j'ai tous les modèles de carte mère et la dernière version de BIOS.
Avec ton code je dois faire un case pour chaque modèle... et y'en a un paquet!!!

Moi je cherche à récupérer la version du BIOS correspondante grace au modèle afin de comparer la version installée et la version contenu dans le fichier texte.

En gros je lance mon programme sur n'importe quel PC, le programme récupère le model et la version du BIOS, et il recherche dans le NB_BIOS la ligne correspondante et m'affiche quelle version du BIOS est la dernière. Et moi, d'un coup d'oeil je vois la version installée et la dernière et je compare.

Je verrais plus tard pour que le programme fasse la comparaison directement, je m'en sors déja pas pour l'instant :lol:

Re: [..]Extraire une info d'un txt

Posté : ven. 01 déc. 2017 22:41
par orax
Peux-tu peux modifier le fichier NB_BIOS pour qu'il soit au format INI ? Si oui, le code pourrait être...

Code : Tout sélectionner

Global $NB_BIOS = ""

$SPN = RegRead("HKLM\HARDWARE\DESCRIPTION\System\BIOS", "SystemProductName")
$NB_BIOS = IniRead("NB_BIOS.ini", "BIOS", $SPN, "")

If $NB_BIOS <> "" Then
	MsgBox(64, "BIOS Verion", $NB_BIOS)
Else
	MsgBox(16, "BIOS Version", "Impossible de déterminer la version du BIOS")
EndIf
Pour que la fonction IniRead puisse marcher il faut ajouter la section dans le fichier. Pour faire cela, il faut simplement ajouter [BIOS].
Fichier NB_BIOS.ini :

Code : Tout sélectionner

#model = newest BIOS version
[BIOS]
A8DC = 214
A8E = 302
A8F = 302
A8FM = 212
A8H = 204
A8HE = 210
A8J = 212J
J'ai renommé NB_BIOS.txt en NB_BIOS.ini.

Re: [..]Extraire une info d'un txt

Posté : ven. 01 déc. 2017 22:55
par jerem448
Merci beaucoup ca fonctionne!

Re: [..]Extraire une info d'un txt

Posté : ven. 01 déc. 2017 23:25
par Tlem
jerem448 a écrit : ven. 01 déc. 2017 22:16Le truc c'est que dans le fichier NB_BIOS.txt j'ai tous les modèles de carte mère et la dernière version de BIOS.
Avec ton code je dois faire un case pour chaque modèle... et y'en a un paquet!!!
Ha ben ouais, si vous ne dites pas tout !!!

Effectivement ma première idée était la lecture du fichier tel que décrit par Orax, mais comme le nombre d'éléments était réduit (dans votre description), je ne voyais pas l'utilité d'avoir un fichier txt en plus !!!

Bref, comme d'habitude, le manque de précision dans la description de la demande implique à chaque fois une perte de temps inutile.
Bon, je ne vous en veux pas, j'aurais aussi dût dans le message #2 demander plus d'explications. ^^