[R]Extraire une info d'un txt

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jerem448
Niveau 1
Niveau 1
Messages : 9
Enregistré le : ven. 01 déc. 2017 15:53
Status : Hors ligne

[R]Extraire une info d'un txt

#1

Message 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 ^^
Modifié en dernier par jerem448 le ven. 01 déc. 2017 22:56, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#2

Message par Tlem »

Vous n'expliquez pas comment vous récupérez le numéro de modèle ?
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
jerem448
Niveau 1
Niveau 1
Messages : 9
Enregistré le : ven. 01 déc. 2017 15:53
Status : Hors ligne

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

#3

Message 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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#4

Message 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
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
jerem448
Niveau 1
Niveau 1
Messages : 9
Enregistré le : ven. 01 déc. 2017 15:53
Status : Hors ligne

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

#5

Message 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:
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

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

#6

Message 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.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
jerem448
Niveau 1
Niveau 1
Messages : 9
Enregistré le : ven. 01 déc. 2017 15:53
Status : Hors ligne

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

#7

Message par jerem448 »

Merci beaucoup ca fonctionne!
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#8

Message 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. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre