Bonjour à tous,
Aujourd'hui vous allez apprendre à créer un fichier pour gérer les logs de votre futur programme automatique.
les logs ? comme dans One Piece ?
C'est tout à fait ça ! Quoi ? vous ne connaissez pas OP :shok: ?
Bon, alors dans ce cas, un log est un fichier texte où est enregistré l'historique des communications entre un serveur et des postes clients. On retrouvera en particulier les requêtes demandées au serveur, les messages d'erreurs générés par l'application. Bref des informations indispensables à analyser en cas d'erreur. (source JdN).
Oula....compliqué tout ça :umnik2:
Point du tout ! Nous n'allons pas faire autant que ces gens.
Notre fichier de log contiendras :
la date et heure précise de la tentative d'accès
l'adresse IP du client ayant réalisé cet accès
Quand la méthode est comprise, vous pourrez rajouter des objectifs à vos fichiers de log :whistle3:
ok, j'ai compris !
Si tu as compris ce que nous allons faire, va voir ce sujetfait par Zts-pasthck qui vous explique beaucoup de choses sur les fichiers.
J'ai finis de lire
Alors dans ce cas, on commence !
Vous avez tous lu mon sujet sur les algorithmes et vous êtes tous capables d'en faire. Non ? allez jetez un coup d'œil sur le sujet en question : http://cadernis.free.fr/viewtopic.php?f=10&t=1190.
Allez, on prend une feuille de papier et on réfléchis comment faire notre fichier de log en français.
On obtient ces différentes étapes : (je vous conseille de le faire chez vous aussi pour voir si vous résonner bien)
Cliquez pour révéler
Cliquez pour masquer
1_ Créer le fichier de log s'il n'existe pas déjà
2_ Récupérer la date et l'heure du lancement du programme
3_ récupérer l'adresse IP du joueur
4_ insertion de toutes les données dans le fichier log
Bon, on fais comme dans tout algorithme, on crée les sous-parties.
Morceau de corps N°1
Alors, on doit créer dans ce morceau de corps le fichier du log s'il n'est pas déjà fait.
Faite un morceau d'algorithme papier et regarder ensuite celui que je vous propose.
Cliquez pour révéler
Cliquez pour masquer
ficher <-- ChercheFichier("log.txt", "")
Si fichier = FAUX alors
CreerFichier ("log.txt", "")
Fin Si
On trouve ici une fonction et une procédure. Il faut maintenant les déclarer :
ChercheFichier ("NomFichier", "répétoire") --> booléen : cherche si un fichier existe dans le répertoire donné. Si il n'existe pas ChercheFichier renvoie Faux.
CreerFichier ("NomFichier", "répertoire") : Créer un fichier dans le répertoire cité.
Voici la première partie algorithmique de notre programme de log.
Mocreau de corps N°2
On doit maintenant récupérer la date et l'heure du lancement du programme.
Voici l'algorithme (comme toujours, faites par vous même et quand vous avez terminé regarder la solution).
Cliquez pour révéler
Cliquez pour masquer
DateActu = DateSysteme()
DateSysteme() --> chaine de caractère : renvoie la date actuelle sous la forme "MM/JJ/AAAAA HH:MM:SS".
Bon, j'avoue que là encore si vous n'avez jamais de programmation ou d'algorithme vous avez du mal à trouver. mais bon, maintenant vous savez le faire :biggrin:
Mocreau de corps N°3
Alors, on va récupérer l'adresse IP du joueur pour l'insérer dans le fichier du log.
Réfléchissez comment récupérer l'adresse IP du log et hop la solution :
Cliquez pour révéler
Cliquez pour masquer
NbFois = 0
Faire
ip = adresseip()
NbFois = NbFois + 1
Jusqu'a (ip <> "0.0.0.0") OU (ip <> "127.0.0.1") OU (NbFois = 4)
Voila, on a une boucle qui permet de connaitre l'adresse IP de la machine. Bien sûr on pourrais mieux la faire mais comme ça c'est le minimum en ce qui me concerne.
Morceau de corps N°4
Voila le morceau le plus intéressant, l'insertion de toutes les données dans le fichier log.
Faites l'algorithme et comparez.
Cliquez pour révéler
Cliquez pour masquer
fich = OuvrirFichier ( "log.txt", 8+1 )
EcrireFichier (fich, "La date et l'heure actuelle : " & DateActu )
OuvrirFichier ("NomFichier", X) --> chaine de caractère : insère dans la variable qui le reçois tout le texte du document sélectionner. X est un nombre pour connaitre les droits de l'utilisateur.
EcrireFichier (Fichier, "Texte") : inscrit dans la variable du nom de Fichier le texte.
Et voila, on a décomposer notre corps et il est prêt à être assemblé, vérifié bien vos lexiques que vous ne vous êtes pas trompé quelques pars et on y va.
L'algorithme complet !
Assemblez vos différentes sous-parties chez vous et ensuite regarder le mien. Voyez les différences et demandez vous si le votre fonctionnerais. Assemblez aussi les lexiques et voyez si ça concorde.
Cliquez pour révéler
Cliquez pour masquer
Algo Log
Début
ficher <-- ChercheFichier("log.txt", "")
Si fichier = FAUX alors
CreerFichier ("log.txt", "")
Fin Si
DateActu = DateSysteme()
NbFois = 0
Faire
ip = adresseip()
NbFois = NbFois + 1
Jusqu'a (ip <> "0.0.0.0") OU (ip <> "127.0.0.1") OU (NbFois = 4)
fich = OuvrirFichier ( "log.txt", 8+1 )
EcrireFichier (fich, "La date et l'heure actuelle : " & DateActu )
Fin
je m'exempte d'écrire le lexique et les fonctions/procédures car je l'ai déjà dites. Voila on a terminé notre algorithme pour notre programme de log.
Maintenant vous devriez tous être capables sans mon aide de pouvoir créer un fichier de log mais je sais que vous êtes fainéants et que vous ne voulez pas chercher plus loin que le bout de votre nez. Pour vous, voici les fonctions pour retranscrire cet algorithme dans le langage AutoIt :
#include <Date.au3>
FileOpen
FileWrite
Do...Until..OR...OR..OR
$ip = @IPAddress1
Et pour les moins téméraires, voici le bout de code pour avoir la date et l'heure système :
Cliquez pour révéler
Cliquez pour masquer
$tCur = _Date_Time_GetSystemTime()
FileWrite($file, "La date et l'heure actuelle : " & _Date_Time_SystemTimeToDateTimeStr($tCur))
Après c'est juste question de lire les différentes sections du tutoriel pour savoir à quoi chacune sert (la date et l'heure j'ai dû fouiller dans les fichiers moi même pour la trouver alors n'hésitez pas à la prendre si vous ne la trouver pas).
PS : quand vous irez en partie membre (et quand j'y serais aussi), vous pourrez y trouver mon code AutoIt de log un peu plus complet que celui là alors à bientôt pour de nouvelles aventures :bye:
Par : sheik54