[..]Lecture speciale d'un fichier texte

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
ethneldryt
Status : Hors ligne

[..]Lecture speciale d'un fichier texte

#1

Message par ethneldryt »

Bonjour,
je ne sais pas comment faire ce script :

J'ai un fichier texte (base.txt)
Voici un exemple de ce que contiendrai le fichier :

abc.exe | ABC est lancer v1.1
deff.exe | DEFF est lancer v3.1
ghih.exe | GHIH est lancer v0.1

ensuite, il faudrait faire un processexist voir si un des nom dans le fichier texte est actif et ensuite afficher la 2 parties du nom.
Par exemple deff.exe est dans les processus,ce qui afficherai "DEFF est lancer v3.1"

merci de votre aide :)
Avatar du membre
jumby
Niveau 5
Niveau 5
Messages : 118
Enregistré le : jeu. 12 juin 2008 17:50
Status : Hors ligne

Re: [..]Lecture speciale d'un fichier texte

#2

Message par jumby »

J'ai élaboré ton script au complet.

Créé ton fichier texte et nomme le : "tonfichiertexte.txt"
Place dans tonfichiertexte.txt les 3 lignes :
abc.exe | ABC est lancer v1.1
deff.exe | DEFF est lancer v3.1
ghih.exe | GHIH est lancer v0.1

Ensuite exécute ce script :

Code : Tout sélectionner

$readline1 = FileReadLine("tonfichiertexte.txt", 1) ; On lit la première ligne
$readprocess1 = StringMid($readline1, 1, 7) ; On extrait les 7 premiers caractères concenant le nom du processus
if ProcessExists($readprocess1) Then ; On test si le processus lu auparavant existe
$readcomment1 = StringMid($readline1, 11, 30) ; On extrait le commentaire à afficher
MsgBox(0, $readcomment1, $readcomment1) ; On affiche le commentaire
EndIf

$readline2 = FileReadLine("tonfichiertexte.txt", 2) ; On lit la seconde ligne
$readprocess2 = StringMid($readline2, 1, 8) ; On extrait les 8 premiers caractères concenant le nom du processus
if ProcessExists($readprocess2) Then ; On test si le processus lu auparavant existe
$readcomment2 = StringMid($readline2, 12, 32) ; On extrait le commentaire à afficher
MsgBox(0, $readcomment2, $readcomment2) ; On affiche le commentaire
EndIf

$readline3 = FileReadLine("tonfichiertexte.txt", 3) ; On lit la dernière ligne
$readprocess3 = StringMid($readline3, 1, 8) ; On extrait les 8 premiers caractères concenant le nom du processus
if ProcessExists($readprocess3) Then ;  On test si le processus lu auparavant existe
$readcomment3 = StringMid($readline3, 12, 32) ; On extrait le commentaire à afficher
MsgBox(0, $readcomment3, $readcomment3) ; On affiche le commentaire
EndIf
 
ethneldryt
Status : Hors ligne

Re: [..]Lecture speciale d'un fichier texte

#3

Message par ethneldryt »

Justement j'avais penser un truc de ce genre mais si n'est pas ca que je cherche,
j'aurais sinon fait plus facilement :

if ProcessExists("abc.exe) Then
msgbox(1,"","ABC est lancer v1.1")
endif

il faudrait faire une espèce de boucle qui lisent jusqu'au signe "|" avant et après.
par exemple :

$avant[] = tout les nom de processus et $apres[] = toute les descriptions.

si dans les processus il y a un nom dans $avant[2] alors ca affiche $apres[2].
Avatar du membre
jumby
Niveau 5
Niveau 5
Messages : 118
Enregistré le : jeu. 12 juin 2008 17:50
Status : Hors ligne

Re: [..]Lecture speciale d'un fichier texte

#4

Message par jumby »

D'accord.
Ceci va détecter le commentaire après le '|' et le nom du processus avant le '|', tu peux rajouter autant de ligne que tu le souhaites.

Code : Tout sélectionner

#include <file.au3>
; Script Start - Add your code below here
$numberofline = _FileCountLines("tonfichiertexte.txt")
for $globalread = 1 to $numberofline step 1
$readline1 = FileReadLine("tonfichiertexte.txt", $globalread)
for $detectchar = 1 to 999 step 1
$searchchar = StringMid($readline1, $detectchar, 1)
if $searchchar = "|" Then
$numberofcharline1 = StringLen($readline1)
$getcomment1 = StringMid($readline1, $detectchar+2, $numberofcharline1-$detectchar)
$getprocessname1 = StringMid($readline1, 1, $detectchar - 2)

MsgBox(0, "Commentaire : "&$getcomment1, "Nom du processus : "&$getprocessname1)
EndIf
Next
Next
ethneldryt
Status : Hors ligne

Re: [..]Lecture speciale d'un fichier texte

#5

Message par ethneldryt »

merci, mais il y a un problème, le nom de commentaire et processus diminue plus il y a de ligne dans le fichier texte. essayer le code, je ne sais pas comment expliquer le problème :p
Avatar du membre
jumby
Niveau 5
Niveau 5
Messages : 118
Enregistré le : jeu. 12 juin 2008 17:50
Status : Hors ligne

Re: [..]Lecture speciale d'un fichier texte

#6

Message par jumby »

Diminue ? J'ai fait un test avec 10 lignes cela marche impeccable. As-tu gardé la même mise en forme sur les autres lignes?
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..]Lecture speciale d'un fichier texte

#7

Message par Iste »

Si le TXT n'est pas une obligation, use un .ini
du genre
[process]
abc.exe=ABC est lancer v1.1
deff.exe=DEFF est lancer v3.1
ghih.exe=GHIH est lancer v0.1
Enssuite, tu peux

Code : Tout sélectionner

$var = IniReadSection("process.ini","process")
For $i = 1 To $var[0][0]
    If ProcessExists($var[$i][0]) Then MsgBox("","",$var[$i][1])
Next
Sinon ya StringSplit()

Code : Tout sélectionner

$file = FileOpen("test.txt", 0)

; Check if file opened for reading OK
If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
EndIf

; Read in lines of text until the EOF is reached
While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    $var = StringSplit($line," | ",1)
    If ProcessExists($var[1]) Then MsgBox("","",$var[2])
Wend

FileClose($file)
 
Signez ici
ethneldryt
Status : Hors ligne

Re: [..]Lecture speciale d'un fichier texte

#8

Message par ethneldryt »

merci a vous,
je vais prendre la methode avec le ini,ca sera plus simple pour la suite de mon code. merci :)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11816
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..]Lecture speciale d'un fichier texte

#9

Message par Tlem »

Effectivement le choix du fichier .ini s'impose. ;)
Par contre je suggérerais plutôt cette forme :

Code : Tout sélectionner

[abc]
Version = 1.1
Run = 0

[deff]
Version = 3.1
Run = 0

[ghih]
Version = 0.1
Run = 0
Car un simple IniReadSectionNames donnera la liste des processus à tester puis une simple écriture dans la section du processus à la valeur Run permet de définir si il est en fonction ou à l'arrêt.

Après, si la mention :XXX est lancé vX.X doit figuré quelque part, vous pouvez le générer facilement en lisant le .ini et la condition de la valeur Run. ;)
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é".
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..]Lecture speciale d'un fichier texte

#10

Message par SagePourpre »

Et ... ça serait

Abc.exe est lancé plutôt que Abc.exe est lancer

Je précise cela à titre informatif seulement...
:mrgreen:
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11816
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..]Lecture speciale d'un fichier texte

#11

Message par Tlem »

heuuuu, c'est bien ce que j'ai écrit dans la dernière partie de mon message ... :shock: :shock: :shock:
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é".
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..]Lecture speciale d'un fichier texte

#12

Message par SagePourpre »

Tlem a écrit :heuuuu, c'est bien ce que j'ai écrit dans la dernière partie de mon message ... :shock: :shock: :shock:
Ah... ce n'est pas toi que je visais avec mon précédent message mais plutôt ethneldryt. (dans le premier message)
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Répondre