|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | |||
|
Membre du Club
![]() Ingénieur systèmes et réseaux Inscription : juillet 2012 Messages : 166 ![]() |
Bonjour,
J'ai un petit problème tout simple Chaque jour, j'execute un script qui fait un ping sur une liste de machine (toto, titi et tata) et qui ecrit le résultat OK ou NOK dans un fichier texte. Le but est de faire un historique sur 7 jours en incrémentant le fichier à chaque fois. Code :
Citation:
Pour que chaque jour il incrémente avec la nouvelle valeur pour que ca donne : --> nouveau jour toto OK --> OK --> NOK tata NOK --> NOK --> OK titi NOK --> NOK --> OK Si vous avez une idée je suis preneur... Sinon je vais parser mon fichier en colonne et spliter Merci d'avance. |
|||
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Mikhail D. Inscription : mars 2010 Messages : 78 ![]() |
La comme ca je dirais qu'il faut:
- Lire ton fichier en copiant les lignes "toto OK --> OK --> NOK" etc dans un tableau de taille = nombre de machines a pinger; - Reecrire ton fichier a partir du tableau en ajoutant le resultat du ping au bout de la chaine de caracteres
__________________
"Les hommes et les femmes qui, sans bouger de leur bureau ou de leur bibliotheque, sans développer leur puissance corporelle et leurs infinies dimensions, parviennent, par une opération de la conscience, à une tristesse pessimiste qui se pretend lucide ne font que constater, sans le savoir, que toute identification du multiple de la vie à la vacuite de la conscience mène inévitablement à ce pessimisme et cette impuissance." extrait de "La fragilité" de Benasayag |
|
|
00
|
|
|
#3 | ||
|
Membre du Club
![]() Ingénieur systèmes et réseaux Inscription : juillet 2012 Messages : 166 ![]() |
hummm, je ne vois pas trop ce que tu veux dire :
Mon fichier est comme ca : Citation:
Citation:
|
||
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : février 2006 Messages : 911 ![]() |
bonjour,
2 approches possibles : 1- si le fichier ne dépasse pas quelques centaines de ko, faire un ReadAll, splitter ligne par ligne, ajouter à la fin de chaque élément du tableau le résultat du ping de chaque machine, puis Join et sauvegarde en bloc du fichier en écrasant l'original. 2- soit le fichier commence à devenir joufflu, lire une ligne du fichier (ReadLine) y ajouter le résultat du ping de la 1er machine, écrire cette ligne dans un 2ème fichier temp (WriteLine), boucler cette opération jusqu'à la dernière machine, fermeture des fichiers, renommer le fichier temp en écrasant le fichier initial
__________________
nomen omen, nemo non omen le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón) pas de questions techniques par mp |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Ingénieur systèmes et réseaux Inscription : juillet 2012 Messages : 166 ![]() |
Merci pour vos réponses, je vais ouvrir un autre sujet plus clair.
|
|
|
00
|
|
|
#6 | ||
|
Membre émérite
![]() Inscription : juin 2006 Messages : 632 ![]() |
Ca devrait le faire.
Code :
C'est la mise en application de son approche 1 Et c'est du vite fait. Il y a surement des améliorations à faire... |
||
|
|
00
|
|
|
#7 | ||||||
|
Membre du Club
![]() Ingénieur systèmes et réseaux Inscription : juillet 2012 Messages : 166 ![]() |
Oups .....
Je n'avais pas vu ta réponse et j'ai ouvert un autre post plus clair .... C'est top c'est exactement ce que je voulais merci !!!! J'ai juste crée un tableau de 1000 lignes pour tester : Citation:
Citation:
Dans ma liste j'ai : Citation:
Citation:
Citation:
Mais dans le fichier de log il m'affiche ca : Citation:
Une idée svp ? Je soupconne, mon tableau ou un truc du genre Merci encore Aniki et omen999 pour votre aide car j'avais laissé tombé. |
||||||
|
|
00
|
|
|
#8 |
|
Membre émérite
![]() Inscription : juin 2006 Messages : 632 ![]() |
Le script que je t'ai donné part du principe que ce sont toujours les même machines dans le même ordre qui sont pingées.
Si tu veux qu'il s'adapte aux nouvelles machines rencontrées, alors il faut effectivement faire quelques changements mais rien de bien méchant. Cette fois je ne vais pas balancer le code prémaché car ce n'est pas le but du forum. Mais je peux te donner des indices : avant, on ne créait de nouvelles lignes que si le fichier historique n'existait pas. Maintenant, il faut que tu changes ce comportement pour lui dire de créer une nouvelle ligne uniquement s'il découvre une nouvelle machine. Ceci implique de vérifier à chaque fois si la machine pingée est déjà présente dans l'historique. Essaie de te débrouiller avec ça et si tu coinces, reposte ici en nous donnant le code que tu as essayé. Bon courage |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Ingénieur systèmes et réseaux Inscription : juillet 2012 Messages : 166 ![]() |
bonjour,
merci pour ta réponse, je ne vois pas trop comment faire ... Il faut comparer les 2 fichiers texte : Histo_ping.txt et Liste_Machines.txt ? Si nouvelle machine dans Liste_Machines.txt alors ? je ne vois pas trop désolé. |
|
|
00
|
|
|
#10 |
|
Membre émérite
![]() Inscription : juin 2006 Messages : 632 ![]() |
Nouvel indice:
le test qui permettait de savoir si on écrivait une nouvelle ligne ou pas était: if i <= UBound(Histo) And Histo(i) <> "" then. maintenant on veut a chaque fois* lire le fichier histo et regarder si la machine qui vient d'être pingée est déjà présente dans l'historique ou pas. Du coup, on va avoir besoin d'une boucle et de lire le fichier, jusqu'à se qu'on trouve la machine en question (pas de nouvelle ligne) ou que l'on tombe sur la fin du fichier (nouvelle ligne). *on pourrait faire des optimisations si on savait par exemple que les nouvelles machines sont toujours ajoutées à la fin du fichiers machine ou bien que les fichiers sont triés, etc... Mais ça viendra plus tard. |
|
|
00
|
|
|
#11 |
|
Membre du Club
![]() Ingénieur systèmes et réseaux Inscription : juillet 2012 Messages : 166 ![]() |
Une bouccle While ou For ?
Do While objFile.AtEndOfStream Loop ou For Next |
|
|
00
|
|
|
#12 |
|
Membre émérite
![]() Inscription : juin 2006 Messages : 632 ![]() |
Le Do While fera parfaitement l'affaire.
![]() Et maintenant, le test pour savoir si on crée une nouvelle ligne ou pas ! |
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() Ingénieur systèmes et réseaux Inscription : juillet 2012 Messages : 166 ![]() |
|
|
|
00
|
|
|
#14 | ||
|
Membre émérite
![]() Inscription : juin 2006 Messages : 632 ![]() |
Code :
Implémente le code VB et reviens poster ton résultat. |
||
|
|
00
|
|
|
#15 | ||
|
Membre du Club
![]() Ingénieur systèmes et réseaux Inscription : juillet 2012 Messages : 166 ![]() |
...
Code :
|
||
|
|
10
|
|
|
#16 |
|
Membre émérite
![]() Inscription : juin 2006 Messages : 632 ![]() |
Et ?
Ca marche ou pas ? Pour le coup du placer objRes au début du fichier, je ne savais pas qu'en VBScript on ne pouvait pas revenir en arrière... Du coup optimiser le code pour ne pas ouvrir et fermer le fichier en permanence devrait soulager énormément ! Conseils pour améliorer ton script : il y a des ouvertures de fichier pas nécessaire à enlever et il faut aussi penser à fermer proprement les fichiers une fois qu'on les a ouvert. On avance, on avance... |
|
|
00
|
|
|
#17 |
|
Membre du Club
![]() Ingénieur systèmes et réseaux Inscription : juillet 2012 Messages : 166 ![]() |
lol je regarde .... d'un coté ca m'enerve, mais de l'autre c'est ludique
|
|
|
00
|
|
|
#18 | |||||||
|
Membre du Club
![]() Ingénieur systèmes et réseaux Inscription : juillet 2012 Messages : 166 ![]() |
je ne vois pas comment le placer au début du fichier ....
et non ca ne marche pas Je lance une première liste : Citation:
Citation:
Citation:
Code :
Code :
Je chercherais plus tard pas grave, je ne vais pas te faire perdre ton temps et il faut que je finisse autre chose. cetait juste un plus ca ... Merci bcp pour ton aide en tout cas. |
|||||||
|
|
00
|
|
|
#19 | ||
|
Membre émérite
![]() Inscription : juin 2006 Messages : 632 ![]() |
Normal que ca marche pas, il faut faire le ménage quand on lit la ligne de l'historique pour ne récupérer QUE le nom de la machine :
Code :
Après, on se penche sur l'optimisation ! Et non, tu ne t'y soustrairas pas... |
||
|
|
00
|
|
|
#20 | ||
|
Membre du Club
![]() Ingénieur systèmes et réseaux Inscription : juillet 2012 Messages : 166 ![]() |
ca ne fonctionne pas ...
Ca écrase le contenu de mon fichier ... Code :
|
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com