Page 1 sur 1
[..]Lecture speciale d'un fichier texte
Posté : jeu. 04 juin 2009 14:23
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

Re: [..]Lecture speciale d'un fichier texte
Posté : jeu. 04 juin 2009 14:41
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
Re: [..]Lecture speciale d'un fichier texte
Posté : jeu. 04 juin 2009 15:08
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].
Re: [..]Lecture speciale d'un fichier texte
Posté : jeu. 04 juin 2009 15:43
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
Re: [..]Lecture speciale d'un fichier texte
Posté : jeu. 04 juin 2009 15:56
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
Re: [..]Lecture speciale d'un fichier texte
Posté : jeu. 04 juin 2009 15:59
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?
Re: [..]Lecture speciale d'un fichier texte
Posté : jeu. 04 juin 2009 16:06
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)
Re: [..]Lecture speciale d'un fichier texte
Posté : jeu. 04 juin 2009 16:28
par ethneldryt
merci a vous,
je vais prendre la methode avec le ini,ca sera plus simple pour la suite de mon code. merci

Re: [..]Lecture speciale d'un fichier texte
Posté : jeu. 04 juin 2009 21:09
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.

Re: [..]Lecture speciale d'un fichier texte
Posté : ven. 05 juin 2009 05:41
par SagePourpre
Et ... ça serait
Abc.exe est lancé plutôt que Abc.exe est lancer
Je précise cela à titre informatif seulement...

Re: [..]Lecture speciale d'un fichier texte
Posté : ven. 05 juin 2009 07:56
par Tlem
Re: [..]Lecture speciale d'un fichier texte
Posté : ven. 05 juin 2009 08:04
par SagePourpre
Ah... ce n'est pas toi que je visais avec mon précédent message mais plutôt ethneldryt. (dans le premier message)