[R] Filewritetoline avec plusieurs variable sans sauter de lignes

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

[R] Filewritetoline avec plusieurs variable sans sauter de lignes

#1

Message par davzell »

Salut a tous,

j'essaye de faire un script pour récupérer des infos sur un poste et les écrire ensuite dans un fichier txt.

le fichier txt ressemble à ca

Code : Tout sélectionner

Nom du Poste		Numéro de série		Num.d'Enregistrement			Num.d'Activation
j'ai ensuite fait ca

Code : Tout sélectionner

        case $Button1
            _FileWriteToLine($hFileOpen, 9, $NOMPC & "                 " & $Result2)

J'ai ajouté des espaces entre guillemet pour que le résulat de ma variable tombe pile sous "Numero de serie"

par contre si je rajoute une 3eme variable ensuite, avec aussi des espaces, ma variable va se retrouver sur la ligne d'après.

une idée ?

merci
Modifié en dernier par davzell le ven. 25 mars 2016 22:12, modifié 1 fois.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [...] Filewritetoline avec plusieurs variable sans sauter de lignes

#2

Message par orax »

Ce n'est pas plutôt l'éditeur, avec lequel est ouvert le fichier txt, qui fait un retour automatique à la ligne quand la ligne est trop grande ?
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

Re: [...] Filewritetoline avec plusieurs variable sans sauter de lignes

#3

Message par davzell »

je viens de me rendre compte que c'est uniquement une variable ($result2) qui pose problème.

Cette variable est récupéré de cette manière

Code : Tout sélectionner

Func SN ()

Local $console = Run(@ComSpec & " /c wmic bios get serialnumber", @ScriptDir, @SW_HIDE, $STDOUT_CHILD)
Local $line, $Result = ""
While 1
    Sleep(100)
    $line = StdOutRead($console)
    If @error Then ExitLoop
    $Result = $line
Wend
$Result2 = StringTrimLeft($Result, 17)

GUICtrlSetData($input3, $Result2)

EndFunc
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

Re: [...] Filewritetoline avec plusieurs variable sans sauter de lignes

#4

Message par davzell »

orax a écrit :Ce n'est pas plutôt l'éditeur, avec lequel est ouvert le fichier txt, qui fait un retour automatique à la ligne quand la ligne est trop grande ?
j'y ai pensé mais en faisant le test avec d'autre variable contenant plus de caractère ca passe...
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [...] Filewritetoline avec plusieurs variable sans sauter de lignes

#5

Message par orax »

Il y a bien des retours à la ligne en trop dans cette variable. Il faut donc les supprimer ou utiliser une autre méthode pour récupérer cette valeur.
#include <StringConstants.au3>

; supprime les espaces blancs de début et de fin
$Result2 = StringStripWS($Result2, $STR_STRIPLEADING + $STR_STRIPTRAILING)

; -------------------------------------------------------------------

; méthode alternative (sans utiliser wmic)
$objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
If IsObj($objWMIService) Then
   $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_BIOS")
   For $objItem In $colItems
      ConsoleWrite($objItem.SerialNumber & @CRLF)
   Next
EndIf
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

Re: [...] Filewritetoline avec plusieurs variable sans sauter de lignes

#6

Message par davzell »

effectivement va marche nikel comme ca, merci :)

pour la récuperation du serial number, il y a un avantage à utiliser tel ou tel méthode ?
merci
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [...] Filewritetoline avec plusieurs variable sans sauter de lignes

#7

Message par orax »

Je ne sais pas mais j'ai une préférence pour la méthode "ObjGet" puisqu'il n'y a pas besoin de traiter la chaîne récupérée.
En plus, wmic fait la même chose qu'ObjGet donc je préfère le faire directement avec ObjGet plutôt que d'utiliser une commande externe.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

Re: [...] Filewritetoline avec plusieurs variable sans sauter de lignes

#8

Message par davzell »

ok merci
Répondre