IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Récupérer timestamp dans un fichier tmp


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 41
    Par défaut Récupérer timestamp dans un fichier tmp
    Bonsoir,

    Avant de vous expliquer mon problème, je souhaite vous expliquer quel est le but de mon programme. J'utilise aws-cloudwtach avec lequel je peux afficher des datapoints (Timestamp et Average) pour les différentes sites.

    Donc pour l'instant, j'ai un JSON avec 3 éléments:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var arr = [
          { "region": "eu-west", "value": "http://****" },
          { "region": "eu-west", "value": "http://****" },
          { "region": "eu-west", "value": "http://****" },
    ]
    Ce que je fais, c'est d'afficher 5 datapoints pour chaque éléments de JSON. Ensuite je regarde mes 5 datapoints et j'affiche la majorité de mon Average. Si la majorité est égale à 200 alors le statut est vrai sinon le statut est faux. Et justement, lorsque c'est faux, mon but est de récupérer le timestamp pour ensuite le stocker dans un fichier tmp.txt. Et donc je suis bloquer sur la façon de récupérer le timestamp quand le statut est faux.
    Exemple (avec un élement du JSON) :
    (Timestamp: 14/01/2019 15:00; Average: 200)
    (Timestamp: 14/01/2019 15:05; Average: 200)
    (Timestamp: 14/01/2019 15:10; Average: 200)
    (Timestamp: 14/01/2019 15:15; Average: 200)
    (Timestamp: 14/01/2019 15:20; Average: 200)

    -> Majorité: 200, Statut est vrai, on fait rien


    (Timestamp: 14/01/2019 15:00; Average: 200)
    (Timestamp: 14/01/2019 15:05; Average: 400)
    (Timestamp: 14/01/2019 15:10; Average: 200)
    (Timestamp: 14/01/2019 15:15; Average: 400)
    (Timestamp: 14/01/2019 15:20; Average: 400)

    -> Majorité: 400, Statut est faux, on récupère un timestamp (14/01/2019 15:20) et on le stocke dans un fichier tmp.txt

    Je vous montre mon code pour mieux comprendre ma demande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    for (const key in arr) {
          var region= arr[key].region
          var Value = arr[key].value 
     
            cw.getMetricStatistics(params, function(err, data) {
            if (err){
                console.log(err, err.stack); // an error occurred
            } else {    
            var status;
            //console.log(data.Datapoints);
     
            let downtime = data.Datapoints.slice(0,1).map(e=>e.Timestamp);
            let majority = data.Datapoints.slice(0,5).map(e=>e.Average);
            console.log(majority);    
     
            /*********** SCRIPT MAJORITY***************/
     
            console.log(item+" ( " +a+" times ) ") ;
            / Output 200 (up) or 400-500 (down)
     
            if(item === 200){
                status = "up"
                check_tab[key] = status;
     
                })
     
            }
     
            /****** NEED HELP IN THIS PART*********/
            else{
                status = "down"
                check_tab[key] = status;
                fs.writeFile('temp.txt',downtime, function(err, data){
                    if (err) console.log(err);
                    console.log("Successfully Written to File.");
     
            }    
            console.log("aaa: "+check_tab);
     
            }
            });
    }
    J'ai tenté de faire un truc mais c'est faux car mon timestamp récupérer est complètement aléatoire et il m'affiche uniquement un timestamp alors qu'il doit m'en afficher 3 puisque j'ai 3 éléments dans mon JSON.

    Je vous remercie de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Un exemple de récupération de ta chaine en JSON

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    chaine = "(Timestamp: 14/01/2019 15:00; Average: 200)\
    (Timestamp: 14/01/2019 15:05; Average: 200)\
    (Timestamp: 14/01/2019 15:10; Average: 200)\
    (Timestamp: 14/01/2019 15:15; Average: 200)\
    (Timestamp: 14/01/2019 15:20; Average: 200)";
     
    reg1 = /\([^)]+\)/g;
     
    temptab = chaine.match(reg1);
    console.log(temptab);
    reg2 = /\(Timestamp:\s([^;]+); Average:\s([^)]+)\)/
    TAB = [];
    temptab.map(function(a) {
      console.log(a);
      ttab = a.match(reg2);
      TAB.push({
        Timestamp: ttab[1],
        Average: ttab[2]
      });
    });
     
    console.log(TAB)
    tu as ensuite directement tes string timestamp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert( TAB[0].Timestamp)
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 41
    Par défaut
    Bonjour,

    Je vous remercie de votre réponse.

    Enfaite, lorsque je fais un data.Datapoints, le résultat renvoyé est un JSON avec le timestamp, average donc ce n'est pas moi qui le crée par défaut.
    C'est à dire, le résultat renvoyait est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    {Timestamp: 2019-01-15T08:26:00.000Z,
    Average: 200},
    {Timestamp: 2019-01-15T08:32:00.000Z,
    Average: 200},
    {Timestamp: 2019-01-15T08:26:00.000Z,
    Average: 200},
    Donc je dois faire une condition qui dit que si Average est différent de 200, il faut prendre le bon timestamp et donc l'afficher dans la console par exemple ...
    Dans votre code, sa donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    chaine = "(Timestamp: 14/01/2019 15:00; Average: 200)\
    (Timestamp: 14/01/2019 15:05; Average: 200)\
    (Timestamp: 14/01/2019 15:10; Average: 200)\
    (Timestamp: 14/01/2019 15:15; Average: 200)\
    (Timestamp: 14/01/2019 15:20; Average: 200)";
     
    reg1 = /\([^)]+\)/g;
     
    temptab = chaine.match(reg1);
    console.log(temptab);
    reg2 = /\(Timestamp:\s([^;]+); Average:\s([^)]+)\)/
    TAB = [];
    temptab.map(function(a) {
      console.log(a);
      ttab = a.match(reg2);
    if(ttab[2] != 200){
      TAB.push({
        Timestamp: ttab[1],
        Average: ttab[2]
      });
    }
    });
     
    console.log(TAB)
    Il faut un moyen pour qu'à la place des parenthèses il puisse lire des accolades...

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Je n'ai pas dû tout comprendre ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data.Datapoints, le résultat renvoyé est un JSON
    JSON ou string ????
    si c'est un JSON il sudit de recuperer avec l'index Timestamp ????

    Si c'est un string JSON il suffit d'en faire un JSON.parse

    SI c'est du string mal formaté en JSON il faudra regexper ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 41
    Par défaut
    Le format est du JSON. Ce que j'essaye de faire c'est d'abord de récupérer un timestamp quand l'average est différent de 200
    Enfaite, j'affiche 5 datapoints, si la majorité est égale à 200 alors tout va bien. Mais, si elle ne vaut pas 200, alors à partir de ce moment là on récupère le timestamp et ensuite on l'envoit dans un fichier temp.txt

    Ce que je fais (toujours bloqué) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    let majority = data.Datapoints.slice(0,5).map(e=>e.Average);
    		/** SCRIPT MAJORITY***/
    		console.log(item+" ( " +a+" times ) ") ;
                     // OUTPUT 200 or other thing
     
     
     
    		if(item === 200){
    			status = "up"
    			check_tab[key] = status;
     
     
     
    		}
    		else{
    			status = "down"
    			check_tab[key] = status;
    			send = '"'+data.Datapoints.slice(0,1).map(e=>e.Timestamp)+'"';				
    			fs.writeFile('temp.txt',send, function(err, data){
        			  if (err) console.log(err);
        			  console.log(send);
    			})
     
     
    		}

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    je ne comprends pas pourquoi tu fais du slice si tu as les données directement ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/08/2010, 17h00
  2. Récupérer variables dans un fichier XML ?
    Par Santcho dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 07/06/2010, 12h24
  3. [RegEx] Récupérer informations dans un fichier e-mail
    Par ingeniomatique dans le forum Langage
    Réponses: 10
    Dernier message: 19/05/2009, 07h40
  4. Récupérer donnée dans un fichier XML
    Par fred033 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 22/04/2008, 16h04
  5. Réponses: 18
    Dernier message: 22/06/2006, 10h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo